Если максимальная длина HTML составляет 110, почему я могу ввести 114 символов? - PullRequest
4 голосов
/ 05 декабря 2009
<input type="text" id="title" name="title" size="50" maxlength="110" />

Видите ли, максимальная длина равна 110, но я был шокирован, когда обнаружил, что я ввел 114 символов, когда использовал

echo strlen($title);

Есть идеи?

Кстати, я ввел японский текст . Что не так?

Ответы [ 3 ]

13 голосов
/ 05 декабря 2009

Японский текст, скорее всего, использует многобайтовую кодировку символов. Поэтому вы должны использовать mb_strlen () .

С наилучшими пожеланиями, Fabian

5 голосов
/ 05 декабря 2009

Что не так?

Обработка строк в PHP, основанная на предположении, что 1 символ = 1 байт, и оставляет программисту возможность заботиться о кодировках везде и не забывать использовать более свежие функции mb_ * всякий раз, когда имеют дело со строками, которые могут использовать многобайтовые кодировки .

0 голосов
/ 05 декабря 2009

maxlength - это просто блокировка браузера, но ее можно обойти любым способом, включая кодировку Unicode. Для этого

лучше предоставить серверный контроль
...