Описание метода 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): booltrue, если строка содержит характерные для HTML-документа теги (<html>,<body>,<head>и/или<!DOCTYPE>). - Назначение: Нужно для быстрой проверки, «похожа» ли строка на полноценный HTML-документ (а не просто кусок HTML).
- Отличие от проверок вида containsHtmlTags:
isHtmlDocument определяет, есть ли структура документа (теги верхнего уровня), тогда как обычная проверка на наличие тегов сообщит лишь о том, что строка содержит «хоть какой-то» HTML-код.
Если в вашем контенте должны быть ключевые теги документного уровня, метод
isHtmlDocument поможет быстро это определить.