WordPress как на ладони
wordpress jino

utf8_uri_encode() WP 1.5

Кодирует символы, чтобы строку можно было использовать в URI.

Хуков нет.

Возвращает

строку, кодированную для использования в URI.

Использование

<?php utf8_uri_encode( $utf8_string, $length ) ?>
$utf8_string(строка) (обязательный)
Строка юникод символы в которой нужно кодировать.
По умолчанию: нет
$length(число)
Максимальная длинная строки.

Примеры

  1. Создадим правильный URI для кириллических символов не нем:
$utf8_string = "http://site.ru/ссылка-на_istochnik";

echo utf8_uri_encode( $utf8_string );
// вернет:
// http://site.ru/%d1%81%d1%81%d1%8b%d0%bb%d0%ba%d0%b0-%d0%bd%d0%b0_istochnik

Код utf8 uri encode: wp-includes/formatting.php VER 4.9.1

<?php
function utf8_uri_encode( $utf8_string, $length = 0 ) {
	$unicode = '';
	$values = array();
	$num_octets = 1;
	$unicode_length = 0;

	mbstring_binary_safe_encoding();
	$string_length = strlen( $utf8_string );
	reset_mbstring_encoding();

	for ($i = 0; $i < $string_length; $i++ ) {

		$value = ord( $utf8_string[ $i ] );

		if ( $value < 128 ) {
			if ( $length && ( $unicode_length >= $length ) )
				break;
			$unicode .= chr($value);
			$unicode_length++;
		} else {
			if ( count( $values ) == 0 ) {
				if ( $value < 224 ) {
					$num_octets = 2;
				} elseif ( $value < 240 ) {
					$num_octets = 3;
				} else {
					$num_octets = 4;
				}
			}

			$values[] = $value;

			if ( $length && ( $unicode_length + ($num_octets * 3) ) > $length )
				break;
			if ( count( $values ) == $num_octets ) {
				for ( $j = 0; $j < $num_octets; $j++ ) {
					$unicode .= '%' . dechex( $values[ $j ] );
				}

				$unicode_length += $num_octets * 3;

				$values = array();
				$num_octets = 1;
			}
		}
	}

	return $unicode;
}

Cвязанные функции

Из раздела: Форматирование

utf8_uri_encode Комментариев нет

Здравствуйте, !

Ваш комментарий