Функция utf8_uri_encode()
в WordPress преобразует юникодные символы в URL-кодированный формат, пригодный для использования в URI (Uniform Resource Identifier). Это полезно для создания ссылок, содержащих символы, отличные от ASCII, такие как кириллица, азиатские и другие национальные символы.
utf8_uri_encode( string $utf8_string, int $length, bool $encode_ascii_characters = false ): string
Параметры
- $utf8_string
- (string, обязательный) Строка, содержащая символы UTF-8, которые нужно закодировать.
- $length
- (int, обязательный) Максимальная длина строки, которую нужно закодировать. Если передается 0, кодирует всю строку.
- $encode_ascii_characters
- (bool, необязательный) Определяет, нужно ли кодировать ASCII-символы, такие как
<
,"
,'
. По умолчаниюfalse
.
- (bool, необязательный) Определяет, нужно ли кодировать ASCII-символы, такие как
Возвращаемое значение
Возвращает закодированную строку, пригодную для использования в URI, где юникодные символы преобразованы в их шестнадцатеричные эквиваленты.
Пример 1: Создание URI для строки на кириллице
В этом примере создается URI из строки, содержащей кириллические символы. Функция преобразует кириллицу в кодированный формат.
$utf8_string = "http://example.com/ссылка-на-источник";
echo utf8_uri_encode( $utf8_string, 0 );
// Результат:
// http://example.com/%d1%81%d1%81%d1%8b%d0%bb%d0%ba%d0%b0-%d0%bd%d0%b0-%d0%b8%d1%81%d1%82%d0%be%d1%87%d0%bd%d0%b8%d0%ba
Пример 2: Ограничение длины строки
В этом примере строка будет закодирована только на первые 15 символов, что может быть полезно для укороченных ссылок.
$utf8_string = "http://example.com/длинная-ссылка-на-ресурс";
echo utf8_uri_encode( $utf8_string, 15 );
// Результат:
// http://example.com/%d0%b4%d0%bb%d0%b8%d0%bd%d0%bd%d0%b0%d1%8f
Пример 3: Кодирование ASCII-символов
Если передать true
в параметр $encode_ascii_characters
, функция также закодирует ASCII-символы, например, <
, "
, и '
. В этом примере символы в строке, такие как <
, будут преобразованы вместе с кириллицей.
$utf8_string = "пример <текст> для кодирования";
echo utf8_uri_encode( $utf8_string, 0, true );
// Результат:
// %d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%20%3c%d1%82%d0%b5%d0%ba%d1%81%d1%82%3e%20%d0%b4%d0%bb%d1%8f%20%d0%ba%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f
Пример 4: Применение для создания безопасных ссылок
Этот пример показывает, как функция может быть использована для создания ссылки с безопасными символами UTF-8. Мы обрабатываем строку, которая может содержать символы, отличные от ASCII, чтобы избежать проблем с некорректными ссылками.
$utf8_string = "Статья о проекте <Проект UTF-8>";
$safe_uri = "http://example.com/" . utf8_uri_encode( $utf8_string, 0, true );
echo $safe_uri;
// Результат:
// http://example.com/%d0%a1%d1%82%d0%b0%d1%82%d1%8c%d1%8f%20%d0%be%20%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b5%20%3c%d0%9f%d1%80%d0%be%d0%b5%d0%ba%d1%82%20UTF-8%3e
Заключение
Функция utf8_uri_encode()
полезна в WordPress для создания безопасных и корректных URL из строк, содержащих национальные символы, символы специальных форматов или символы, которые могут вызвать ошибки при обработке URI.