drupal_validate_utf8
includes/bootstrap.inc, строка 703
- Версии
- 5 – 6
drupal_validate_utf8($text)
Проверяет является ли UTF-8 кодировкой строки.
Все функции фильтрации ввода должны использовать drupal_validate_utf8, чтобы предотвратить обход фильтра включением невалидного UTF-8.
Когда текст, содержащий, невалидный UTF-8 байт (0xC0 - 0xFF) представляется в Internet Explorer 6 как UTF-8, браузер может неправильно интерпретировать последующие байты. Когда эти последующие байты представляют контрольные символы HTML, такие как кавычки, угловые скобки, части текста, которые посчитались фильтром безопасными, могут вызвать проблемы в браузере. Например, в коде '<span> onclick="alert();"'
, при вставке невалидного байта перед закрывающей угловой скобкой, браузер интерпретирует текст, стоящий после тега ('onclick="alert();"'
) как часть тега.
Функция использует специальное поведение preg_match()
(начиная с PHP 4.3.5), при котором модификатор 'u'
может быть использован для быстрого поиска невалидного UTF-8.
Параметры
$text
Текст для проверки.
Возвращаемое значение
TRUE
, если текст в UTF-8, FALSE
в противном случае.
Код
<?php
function drupal_validate_utf8($text) {
if (strlen($text) == 0) {
return TRUE;
}
return (preg_match('/^./us', $text) == 1);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии