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

Форум PHP

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

 

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

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

тема: substr
 
 автор: btr   (29.01.2013 в 18:11)   письмо автору
 
 

Здравствуйте.
функция substr($spitch,0,13) вырезает не 14, а 7 читаемых символов.
почему так?

  Ответить  
 
 автор: .heed   (29.01.2013 в 19:34)
 
   для: btr   (29.01.2013 в 18:11)
 

В мануале по substr() ничего не написано, написано по "Типы данных"->"Строки"
>Строки
Строка - это набор символов, где символ - это то же самое, что и байт. Это значит, что PHP поддерживает ровно 256 различных символов, а также то, что в PHP нет встроенной поддержки Unicode. Смотрите также [u]подробности реализации строкового типа. [/u]


как я говорил, mb_substr() из mbstring можно попробовать заюзать.
К тому-же на некоторых хостингах ошибки mysql сыпались, если нет примерно такого
    if ( !mb_check_encoding($_v, 'UTF-8'))
 $_v= mb_convert_encoding($_v ,'UTF-8',"auto");
в проверке пользовательских данных при занесении в базу, если пользователь вместо utf-8 отправит cp1251

Ещё в preg-функциях шаблоны '/.../u' корректно работают с utf-8.
По поводу полдьзовательского ввода как-раз тоже лучше кое-чего из utf-8 символов вообще не публиковать
Бывают ещё проблемы, и если есть возможность, просще совсем не использовать utf-8, просто всё сделать в cp1251, например.

  Ответить  
 
 автор: btr   (29.01.2013 в 19:47)   письмо автору
 
   для: .heed   (29.01.2013 в 19:34)
 

спасибо за ответ.

  Ответить  
 
 автор: Udachix   (30.01.2013 в 11:04)   письмо автору
 
   для: btr   (29.01.2013 в 18:11)
 

Используйте mb_substr, предварительно включив поддержку в файле php.ini, откомментировав строчку extension=php_mbstring.dll

  Ответить  
Rambler's Top100
вверх

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