|
|
|
| Подскажите как можно обойти одну неприятность при использовании этой функции в кодировке utf-8 ,дело в том что в utf -8 знак имеет 2 байта, при разбивке блока текста или длинного слова wordwrap делит побайтово и режет крайнюю букву оставляя квадратик, который вылазиет очень некстати | |
|
|
|
|
|
|
|
для: Vantuz
(19.09.2006 в 23:49)
| | Как насчет того, чтобы посмотреть документацию на php.net? Там много полезных комментариев. В частности оттуда:
<?php
function utf8_wordwrap($str,$len,$what){
# usage: utf8_wordwrap("text",3,"<br>");
# by tjomi4`, thanks to SiMM.
# www.yeap.lv
$from=0;
$str_length = preg_match_all('/[\x00-\x7F\xC0-\xFD]/', $str, $var_empty);
$while_what = $str_length / $len;
while($i <= round($while_what)){
$string = preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
$total .= $string.$what;
$from = $from+$len;
$i++;
}
return $total;
}
?>
|
| |
|
|
|
|
|
|
|
для: to4kaRU
(20.09.2006 в 11:33)
| | Все нормально слова разбивает как нужно, но все равно есть проблема, теперь уже латинские символы или цифры, тоесть однобайтные ,обрабатываются некорректно | |
|
|
|
|
|
|
|
для: Vantuz
(21.09.2006 в 01:59)
| | У вас iconv установлен? Можно при помощи него сконвертить текст в CP1251, "отвордврапить", а затем обратно в UTF перегнать. | |
|
|
|
|
|
|
|
для: Саня
(21.09.2006 в 02:12)
| | У меня может и стоит, но мне нужна эта функция для общественного движка который будут и уже устанавливают на многих бесплатных хостингах, так что нет, а писать функцию ручной перекодировки я считаю наверно лишней это будет подгружать сервер при частых обращениях | |
|
|
|
|
|
|
|
для: Саня
(21.09.2006 в 02:12)
| | У меня может и стоит, но мне нужна эта функция для общественного движка который будут и уже устанавливают на многих бесплатных хостингах, так что нет, а писать функцию ручной перекодировки я считаю наверно лишней это будет подгружать сервер при частых обращениях | |
|
|
|
|
|
|
|
|
для: cheops
(21.09.2006 в 13:33)
| | Ну вот представьте гостевую книгу каждый раз перед отправкой собщения необходимю будет прогнать текст в кодировку win, затем обраотать wordwrap , затем вернуть в utf при этом там всякие stripslashes, htmlspecialchars,trim и т д, и лишь только после этого записать в файл, мне кажется если в гостевой будет больше 50 чел. онлайн, то это будет жутко тормозить или я ошибаюсь? | |
|
|
|
|
|
|
|
для: Vantuz
(21.09.2006 в 14:49)
| | Вы ошибаетесь. | |
|
|
|
|
|
|
|
для: Vantuz
(21.09.2006 в 14:49)
| | Любой MySQL-запрос или операция с файлом выволняется дольше чем преобразование кодировки. Беспокоится о скорости работы приложения следует только тогда, когда такая проблема возникает, в современных компьютерах забота о производительности происходит на можествах уровнях: на уровне, процессора, операционной системы, языка программирования и т.п. угадать заранее что какой код будет выполняться быстро, а какой нет практически не реально, даже для эксперта, именно поэтому сейчас ориентируются не на эмпирические знания, а на профилировщики (программы, определяющие узкие места в коде). | |
|
|
|
|
|
|
|
для: Vantuz
(21.09.2006 в 14:49)
| | >Ну вот представьте гостевую книгу каждый раз перед отправкой собщения необходимю будет прогнать текст в кодировку win, затем обраотать wordwrap , затем вернуть в utf при этом там всякие stripslashes, htmlspecialchars,trim и т д, и лишь только после этого записать в файл, мне кажется если в гостевой будет больше 50 чел. онлайн, то это будет жутко тормозить или я ошибаюсь?
А все 50 человек будут одновременно посылать запросы на добавление поста в книгу? Прям DDoS...:))
У меня в чате постоянно из UTF-8 в Windows-1251 и обратно перекодируется текст, еще несколько фукнций и все нормально. И время выполнения только за счет SQL-запросов увеличивается в основном...
> У меня может и стоит, но мне нужна эта функция для общественного движка который будут и уже устанавливают на многих бесплатных хостингах, так что нет, а писать функцию ручной перекодировки я считаю наверно лишней это будет подгружать сервер при частых обращениях
P.S. Да не будет "подгружать сервер при частых обращениях". Замерьте сами. :)
P.P.S. Насколько я знаю Вы пишите всё на файлах...Не пора ли на MySQL переходить? :) Не лишнее будет. | |
|
|
|
|
|
|
|
для: Unkind™
(21.09.2006 в 20:32)
| | Спасибо, наверно так и сделаю с прмошью перекодировки, ?Зачем мускул? Мне и файлов хватает, с ними работать для меня удобней | |
|
|
|