Большой Воронежский Форум
» Веб-дизайн>Вопрос substr [PHP]
Breathe 16:55 11.04.2007
Проблема такая. Получаю строку в UTF8. Обрезаю substr и в результате иногда вконце появляется вопросик. Тоесть было "Организация и управление маркетинговой деятельностью" - получилось "Организация и управление мар�...". Как избежать вопросика? =) [Ответ]
Vital_N 17:06 11.04.2007
Breathe, юзай mb_substr
вообще при работе с UTF - все строковые функции должны использоваться multi-byte [Ответ]
Vital_N 17:10 11.04.2007
зы
забыл сказать - только пых должен быть с поддержкой mbstring собран [Ответ]
alemiks 17:45 11.04.2007
в комментах к описанию substr есть вот что:

Сообщение от :
<?php
function utf8_substr($str,$from,$len){
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
?>

[Ответ]
Breathe 18:06 11.04.2007
Спасиб.
Только вот добавил mbstring в php.ini и сервак перестал отвечать на запросы. Странно все это, пойдука я лучше домой! =) [Ответ]
Breathe 10:19 12.04.2007
Пришел сегодня и сервер как ни в чем не бывало заработал. В результате я смог немного поэксперементировать с mb_substr. Напрягает, что приходится всегда указывать кодировку при обращении к функции. Может сначала перекодировать Windows-1251 и уже с этим делать операции, а потом назад? [Ответ]
Vital_N 11:33 12.04.2007

Сообщение от Breathe:
Пришел сегодня и сервер как ни в чем не бывало заработал. В результате я смог немного поэксперементировать с mb_substr. Напрягает, что приходится всегда указывать кодировку при обращении к функции. Может сначала перекодировать Windows-1251 и уже с этим делать операции, а потом назад?

т.е перегнать в вин займет меньше времени чем указать кодировку? [Ответ]
Breathe 11:41 12.04.2007
Ну получил строку, на нее mb_convert_encoding, помучил и отпустил снова благословив mb_convert_encoding. Йо? [Ответ]
Vital_N 11:56 12.04.2007
зачем стока телодвижений? )) храни все в 1251 и выводи в 1251 и будет тебе счастье если с юникодом не хочешь заморачиваться ) [Ответ]
Breathe 12:42 12.04.2007
В том то и дело что нужен юникод! У меня там система многоязычная =) [Ответ]
Вверх