strlen, mb_strlen, чтобы использовать?

Вы правы относительно добавления их вместе. Вы могли всегда сканировать сумму этих двух файлов для точек максимума и уменьшать масштаб всего файла, если они поражают некоторый порог (или если среднее число его и его окружающих пятен поразило порог)

18
задан lovespring 19 September 2009 в 04:01
поделиться

3 ответа

Это должен быть удаленный характер ваших вызовов вот в чем проблема.

Недавно я сделал всплеск, запрашивая у потока время процессора, и это было невероятно быстрее. В контексте запроса веб-приложения это было почти неизмеримо. По соглашению браузеры POST формируют серверный ресурс, указанный в атрибуте action , с использованием кодировки страницы, которая может быть указана через http-Equiv -meta-tag ( charset -meta-tag в HTML5) или через HTTP-заголовок. В качестве альтернативы некоторые браузеры также учитывают атрибут accept-charset в форме при выборе правильной кодировки.

Кодирование параметров GET и самого URL-адреса зависит от настроек браузера и, следовательно, может контролироваться пользователь. Вы не должны полагаться на конкретную кодировку.

Как правило, вы обойдете большинство проблем, связанных с кодировкой, последовательно используя UTF-8 для всего и указав правильную кодировку в HTTP-заголовке ( Content-Type: text / html; charset = UTF-8 ) - это даст правильную кодировку (UTF-8) для всех переменных, которые передаются в вашу строку (мы не говорим о сценариях румян, которые намеренно пытаются изменить кодировку, чтобы разрешить для некоторых векторов атаки в ваш скрипт). Вы также не должны полагаться на символы, отличные от ascii, в ваших параметрах GET или в URL (это также причина, по которой SEO-дружественные ссылки удаляют эти символы или заменяют их).

Если вы убедились, что UTF-8 является только разрешенный набор символов, вы можете использовать mb_strlen ($ string, 'UTF-8') , например, для проверки длины переменной.

РЕДАКТИРОВАТЬ: (добавлено несколько ссылок)

Некоторые вещи для прочтения:

19
ответ дан 30 November 2019 в 08:33
поделиться

Обычно вы контролируете кодировку символов, поскольку вы создаете $ _REQUEST из HTML, отправляемого клиенту.

то есть: создается страницей, отправленной вами из PHP.

Таким образом, вам не нужно определять кодировку.

Использование mb_functions требует включения многобайтового расширения - поэтому, если вы распространяете код, вы должны знать, что не у всех он будет.

header('Content-Type: text/html; charset=UTF-8');

ИЛИ в HTML:

<meta charset="utf-8">

http://www.w3.org / International / O-charset

Изменить: PHP6 поддерживает utf-8, а не PHP5.

1
ответ дан 30 November 2019 в 08:33
поделиться

используйте mb_internal_encoding , чтобы узнать, какая кодировка используется в настоящее время установлен. Если ваше приложение использует журнал другой кодировки, вам лучше использовать mb_strlen.

Ура

5
ответ дан 30 November 2019 в 08:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: