WP_CHECK_INVALID_UTF8() │ WP 2.8.0
Функция WP_CHECK_INVALID_UTF8()
используется для проверки строк на наличие недопустимых символов UTF-8. Это полезно для обеспечения корректности текстовых данных, которые вы хотите использовать в WordPress.
Где используется
Эта функция используется, например, в таких функциях как:
sanitize_text_field()
esc_html()
Не содержит хуков (Hooks)
Возвращаемое значение
Функция возвращает строку — это текст, который был проверен на наличие допустимых символов UTF-8.
Использование
Чтобы использовать эту функцию, вы вызываете её с двумя параметрами: текстом (обязательный) и флагом, указывающим, нужно ли удалять недопустимые символы.
wp_check_invalid_utf8( $text, $strip );
Параметры
$text
(string) — текст, который нужно проверить. Это обязательный параметр.$strip
(bool) — указывает, нужно ли удалять недопустимые символы UTF-8.- По умолчанию:
false
- По умолчанию:
Примеры использования
Чтобы лучше понять, как работает функция, рассмотрим несколько примеров:
$examples = [
'Valid ASCII' => "a",
'Valid 2 Octet Sequence' => "xc3xb1", // ñ
'Valid 3 Octet Sequence' => "xe2x82xa1", // ₡
'Valid 4 Octet Sequence' => "xf0x90x8cxbc", // 𐌼
'Invalid 2 Octet Sequence' => "xc3x28",
'Invalid 3 Octet Sequence (in 2nd Octet)' => "xe2x28xa1",
];
$result = [];
foreach ( $examples as $key => $value ) {
$result[$key] = wp_check_invalid_utf8($value);
}
var_dump($result);
Результат выполнения
После выполнения приведенного выше кода вы получите следующий массив:
array(6) {
["Valid ASCII"] => string(1) "a"
["Valid 2 Octet Sequence"] => string(2) "ñ"
["Valid 3 Octet Sequence"] => string(3) "₡"
["Valid 4 Octet Sequence"] => string(4) "𐌼"
["Invalid 2 Octet Sequence"] => string(0) ""
["Invalid 3 Octet Sequence (in 2nd Octet)"]=> string(0) ""
}
Как работает функция
Вот краткое описание работы функции wp_check_invalid_utf8()
:
- Сначала функция преобразует входные данные в строку.
- Если строка пуста, она возвращает пустую строку.
- Также она проверяет, поддерживает ли текущая кодировка UTF-8.
- Если кодировка неподдерживаемая, возвращается исходная строка.
- Функция проверяет, допустимы ли символы строки. Если нет, то в зависимости от параметра
$strip
может попытаться удалить недопустимые символы, если это возможно.
Код функции
Вот исходный код функции:
function wp_check_invalid_utf8( $text, $strip = false ) {
$text = (string) $text;
if ( 0 === strlen( $text ) ) {
return '';
}
static $is_utf8 = null;
if ( ! isset( $is_utf8 ) ) {
$is_utf8 = is_utf8_charset();
}
if ( ! $is_utf8 ) {
return $text;
}
static $utf8_pcre = null;
if ( ! isset( $utf8_pcre ) ) {
$utf8_pcre = @preg_match( '/^./u', 'a' );
}
if ( ! $utf8_pcre ) {
return $text;
}
if ( 1 === @preg_match( '/^./us', $text ) ) {
return $text;
}
if ( $strip && function_exists( 'iconv' ) ) {
return iconv( 'utf-8', 'utf-8', $text );
}
return '';
}
Связанные функции
В WordPress есть множество других функций для работы с текстом. Вот некоторые из них:
sanitize_text_field()
esc_html()
sanitize_email()
Каждая из этих функций помогает очистить или отфильтровать текстовые данные для различных целей, обеспечивая безопасность и корректность информации.
Теперь вы знаете, как использовать функцию WP_CHECK_INVALID_UTF8()
для проверки и обработки текстовых данных в WordPress.