Php: правильно считаем количество символов в строке (страница комментариев 3)
23 апреля 2012. Рубрики: Рабочие заметки; автор — Юлия Панина aka Княгиня.
Когда-нибудь видели на сайтах предупреждение: «Длина сообщения не более…» например, 500 символов? Начинаешь писать, честно укладываешься в 450 символов, а при отправке получаешь отлуп: слишком длинное сообщение…Если вы догадаетесь сократить сообщение до 250 символов или использовать транслит, сообщение всё-таки удастся отправить, но остаётся желание кого-то взять за грудки и сказать: что ж ты, милый, людям голову-то морочишь?!..На самом деле это означает, что «на той стороне» сидит несведущий вебмастер. Может, он иностранец и не знает, что такое кириллица, а может, из наших палестин недоучка. Причина такого расхождения в обещанной и реальной длине — размер кириллических символов в UTF-8: по Читать полностью »
29 комментариев на «Php: правильно считаем количество символов в строке»
Андрей
Эти функции считаю символ » (двойной кавычки) как 6 символов
А символ & как 5. Походу спецсимволы тоже неправильно считают.
Tim
Спасибо, никак не мог найти правильного решения! А тут просто и ясно! Спасибочки
sahabond (3 комментария)
Да пока не сталкивался но буду в курсе теперь спасибо!
1 (1 комментарий)
]:-> просто вспомнил аську))
Мак (3 комментария)
Давно занимаюсь php и при необходимости обрезать текст для создания «вступления» всегда иду дальше чем просто обрезать нужное количество символов, ибо:
1) вы обрезаете чаще посреди слова — это не красиво
2) обрезать можно сразу после знака препинания, тире
3) часто обрезка под точное кол символов не так критична
Поэтому! Я обрезаю по словам!)
кратко:
1) разбиваю нужный текст на массив по разделителю «пробел»
2) беру нужное количество слов и склеиваю их пробелом (беру обычно что среднее русское слово — 6 букв)
3) ставлю регулярку чтобы обрезать знаки препинания и пробелы в конце оборванного предложения
Княгиня (660 комментариев)
Ага, и мне при допиле шаблонов блога тоже пришлось этим заниматься — просчётом до того места, где находится ближайший пробел. Но я подходила с другой стороны.
Владимир
Самый пиздец — это когда вебмастер лочит копирование в буфер, и приходится куски кода перевбивать вручную, вместо того чтобы просто скопировать.
Николай (1 комментарий)
Вот такая строка
—
$str=ЗАО «Хлебокомбинат «ПЕКО». Мы понимаем, что птицефабрика тут не при чем. Однако, мы хотим тут пройти разные тесты, поэтому пишем такие странные вещи!
—
В ней на Delphi четко получаю количество символов 149, можно ручками посчитать и убедиться, что это так.
А вот ваши хваленые mb_strlen($str,’UTF-8′) и iconv_strlen($str,’UTF-8′) обе дают 164!!!
И что тут думать? Может, у меня PHP кривой (Apache/2.4.16 (Win64) PHP/5.6.14)? или я слепой? Вот сижу и думаю думу.
Княгиня (660 комментариев)
Это вы мне претензии предъявляете? А как насчёт создателей php?