Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: substr и strlen не работает с кодировкой utf?
 
 автор: jeans1986   (26.10.2007 в 15:07)   письмо автору
 
 

substr и strlen не работает с кодировкой utf? т.е к меня текст соостоящий из кирилицы но в кодировке utf, и функция strlen возврщяет количество байтов а не символов. как определить количество символов? а фугкция substr тоже выделяет подстроку по байтам а не по символам. как это исправить? Заранее благодарю.

   
 
 автор: sim5   (26.10.2007 в 15:10)   письмо автору
 
   для: jeans1986   (26.10.2007 в 15:07)
 

Наверное нужно установить локаль.

   
 
 автор: kasmanaft   (26.10.2007 в 15:11)   письмо автору
 
   для: jeans1986   (26.10.2007 в 15:07)
 

Используйте mb_strlen() и mb_substr()

   
 
 автор: jeans1986   (27.10.2007 в 08:39)   письмо автору
 
   для: kasmanaft   (26.10.2007 в 15:11)
 

она работает также( можно какую то альтернативу найти?

   
 
 автор: Gendalf   (27.10.2007 в 10:07)   письмо автору
 
   для: jeans1986   (27.10.2007 в 08:39)
 

>она работает также( можно какую то альтернативу найти?
Вобщет mb_strlen(), должна правильно работать,

$str="ruehооророррлолорлорлотьь.джророть";
echo 'В строке str  '.mb_strlen($str,'UTF-8').' символов';
//еще можно попробовать с помощью iconv
echo '<br>В строке str  '.iconv_strlen($str,'UTF-8').' символов';

   
 
 автор: Unkind   (27.10.2007 в 11:27)   письмо автору
 
   для: jeans1986   (27.10.2007 в 08:39)
 

> она работает также( можно какую то альтернативу найти?
Если выводится "Fatal error: call to undefined function ...", то у Вас просто не подключена библиотека "Multibyte String Functions".

Есть еще iconv lib: iconv_strlen(), iconv_substr(), но, опять же, она может отсутствовать (хотя это уже становится редкостью).

В противном случае придется писать ф-и самому.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования