Описание метода Editor::isHtmlDocument

\Bitrix\Fileman\Block\Editor::isHtmlDocument
Описание метода isHtmlDocument из класса
\Bitrix\Fileman\Block\Editor
(располагается в файле bitrix/modules/fileman/lib/block/editor.php
модуля fileman). Этот статический метод проверяет строку на наличие «признаков»
полноформатного HTML-документа.
Как выглядит метод в исходном коде (примерная логика)
В разных версиях «1С-Битрикс» реализация может незначительно отличаться, однако в целом она сводится к тому, что метод ищет ключевые HTML-теги, характерные именно для «документного» HTML (а не просто кусочка HTML-кода). Обычно проверяют наличие:
- тега
<html>
или<!DOCTYPE html>
- или
<head>
- или
<body>
Пример упрощённой реализации (чтобы вы понимали суть):
public static function isHtmlDocument($content)
{
// Проверяем, встречаются ли ключевые теги,
// характерные для HTML-документа
if (
stripos($content, '<html') !== false
|| stripos($content, '<body') !== false
|| stripos($content, '<head') !== false
|| stripos($content, '<!DOCTYPE') !== false
)
{
return true;
}
return false;
}
Фактический код может содержать дополнительные условия или другие проверки, но общий принцип остаётся таким же. Важно: данный метод не гарантирует, что строка корректна с точки зрения вёрстки, а лишь указывает на то, что в строке присутствуют теги, обычно встречающиеся именно в «полноценном» HTML-документе.
Как использовать Editor::isHtmlDocument
Метод статический, поэтому вызывается напрямую через класс:
use Bitrix\Fileman\Block\Editor;
use Bitrix\Main\Loader;
Loader::includeModule("fileman");
$content = '<html><head><title>Demo</title></head><body>Текст...</body></html>';
if (Editor::isHtmlDocument($content))
{
echo "Строка выглядит как HTML-документ.";
}
else
{
echo "Строка не содержит структурных тегов HTML-документа.";
}
В этом примере вернётся true
, так как присутствуют ключевые теги <html>
и <body>
.
Пример 2. Частичный HTML без «структурных» тегов
$content = '<div><strong>Просто кусок HTML без тега html/body</strong></div>';
if (Editor::isHtmlDocument($content))
{
echo "Строка выглядит как полноценный HTML-документ.";
}
else
{
echo "Нет, это не структурный документ, а лишь фрагмент HTML.";
}
Здесь метод вернёт false
, поскольку не найдены теги <html>
,
<head>
, <body>
или <!DOCTYPE>
.
Таким образом, это просто HTML-фрагмент, а не целый документ.
Кратко
- Где находится:
Класс
\Bitrix\Fileman\Block\Editor
(модуль fileman), файл bitrix/modules/fileman/lib/block/editor.php. - Сигнатура:
Возвращаетpublic static function isHtmlDocument(string $content): bool
true
, если строка содержит характерные для HTML-документа теги (<html>
,<body>
,<head>
и/или<!DOCTYPE>
). - Назначение: Нужно для быстрой проверки, «похожа» ли строка на полноценный HTML-документ (а не просто кусок HTML).
- Отличие от проверок вида containsHtmlTags:
isHtmlDocument определяет, есть ли структура документа (теги верхнего уровня), тогда как обычная проверка на наличие тегов сообщит лишь о том, что строка содержит «хоть какой-то» HTML-код.
Если в вашем контенте должны быть ключевые теги документного уровня, метод
isHtmlDocument
поможет быстро это определить.