Вэб-разработка
Учим PHP
Rich (off) VIP [5271]
28 февраля 2010, 14:37
Dj maga, читайте тему.Это последнее китайское предупреждение
-------
Dedof (off) [899]
28 февраля 2010, 21:46
хочу спросить пробовал ли кто нибудь использовать функцию mb_substr вместо substr для коректного обрезания текста в UTF - 8 ?
Что то попробовал заменить и вообще на денвере скрипт работать перестаёт
-------
Profi Administrator [10176]
28 февраля 2010, 22:21
Dedof, когда то переводил смарт-версию на utf, всё работало
<?php $text = ( mb_strlen($text) > 10 ) ? mb_substr($text, 0, 10) . ' ...' : $text;
Для использования этих функций на сервере должна быть подключена библиотека php mb_string
-------
Dedof (off) [899]
28 февраля 2010, 23:01
У своего хостера интересовался насчёт этой функции - ответили что поддерживается, а вот на локалке что то не получается - может в денвере этой библиотеки нет?
-------
Dedof (off) [899]
28 февраля 2010, 23:09
у меня строчка выглядит так:
if (strlen($first_post) > $chr_limit)
{
$first_post = substr($first_post, 0, $chr_limit);
$first_post .= '...';
}
меняю substr на mb_substr и вобще перестаёт работать.
-------
Profi Administrator [10176]
28 февраля 2010, 23:09
Dedof, в php.ini раскомментируй строчку
extension=php_mbstring.dll
-------
Profi Administrator [10176]
28 февраля 2010, 23:13
Dedof, все строковые функции нужно менять на мультибайтные аналоги, иначе будет работать некорректно.
Смысл твоего кода тот же что и я написал, но у меня с учётом многобайтных символов.
-------
Profi Administrator [10176]
28 февраля 2010, 23:17
echo strlen('ф'); // 2
echo mb_strlen('ф'); // 1
-------
Dedof (off) [899]
28 февраля 2010, 23:28
то есть если не могу применить в одном определённом месте mb_substr и надо везде менять ?
-------
Profi Administrator [10176]
28 февраля 2010, 23:53
Dedof, дык дело хозяйское. Будет и так и так работать.
Проблема возникает при обработке текста содержащего кириллицу. Как известно в utf одна буква русского алфавита занимает два байта.
Пример я выше написал. Если ты обрезаешь как мультибайтную строку, то и количество символов нужно считать так же.
-------
Ответить на тему
стр. Пред. 1,2,3 ... 63,64,65 ... 87,88,89 След.
Вэб-разработка
Список форумов
На главную
Последние темы
Регистрация
Вход
0.028 сек
SQL: 4