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

Форум PHP

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

 

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

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

тема: Насколько оправдана перезагрузка функций?
 
 автор: baston   (19.02.2010 в 13:33)   письмо автору
 
 

Известно, что если установлен модуль mbstring, то для корректной работы с русскими символами, нужно использовать соответствующие строковые функции, типа mb_strpos и т.д.

Но я обнаружил, что можно использовать и стандартные функции (без префикса mb), если в php.ini расскомментировать опцию mbstring.func_overload и установить для нее числа, соответствующие конкретным функциям.

Вопрос: насколько это оправдано при разработке сайтов и как часто применяется такой подход? То есть, является ли это панацеей от проблем с кодировкой?
Спасибо.

P.S. В каких версиях PHP это работает или независимо?

  Ответить  
 
 автор: sim5   (19.02.2010 в 13:54)   письмо автору
 
   для: baston   (19.02.2010 в 13:33)
 

Модуль mbstring предназначен не для корректной работы с русскими символами, а для работы с мультибайтными строками.

  Ответить  
 
 автор: baston   (19.02.2010 в 14:00)   письмо автору
 
   для: sim5   (19.02.2010 в 13:54)
 

Мультибайтные строки - это, как правило, строки с национальными символами. Верно? А раз так, то косвенно это затрагивает и корректность работы с русскими символами.

  Ответить  
 
 автор: psychomc   (19.02.2010 в 14:10)   письмо автору
 
   для: baston   (19.02.2010 в 14:00)
 

из своей практики, не очень большой, могу сказать, что если utf-8 - нужно использовать префикс mb_ , указывая во втором параметре функции, что это utf-8, если 1251 - работает правильно и без mb_

  Ответить  
 
 автор: sim5   (19.02.2010 в 14:49)   письмо автору
 
   для: baston   (19.02.2010 в 14:00)
 

Ну прямо таки железная логика! А в однобайтной кодировке русские символы ну никак не могут быть? Не выдумывайте, читайте внимательно мануал.

  Ответить  
 
 автор: Trianon   (19.02.2010 в 15:42)   письмо автору
 
   для: baston   (19.02.2010 в 14:00)
 

русские символы поддержаны как минимум пятью (а то и более) транспортными однобайтовыми кодировками.
И всего одной(максимум двумя) транспортной многобайтовой.
Так что мысль не катит.

  Ответить  
 
 автор: baston   (19.02.2010 в 15:44)   письмо автору
 
   для: Trianon   (19.02.2010 в 15:42)
 

Интересовала именно UTF-8...

  Ответить  
 
 автор: Trianon   (19.02.2010 в 16:52)   письмо автору
 
   для: baston   (19.02.2010 в 15:44)
 

именно utf8 ориентирована на гомогенную поддержку всех живых языков.
А не только - и уж извините, не столько - русского.
Что до Вас и пытаются донести.

По теме. Естественно, стоит ориентироваться на utf8 . Но не для поддержки именно русского, а лишь из-за вышесказанного.
Что до того, какими инструментами это делать, то стоит принять как данность, что панацеи в программировании не бывает (она вообще не больно-то где есть) . Включать голову всё равно придется.

  Ответить  
 
 автор: Loki   (19.02.2010 в 16:42)   письмо автору
 
   для: Trianon   (19.02.2010 в 15:42)
 

>И всего одной(максимум двумя) транспортной многобайтовой.
А UTF-32?

  Ответить  
 
 автор: Trianon   (19.02.2010 в 16:50)   письмо автору
 
   для: Loki   (19.02.2010 в 16:42)
 

а она не транспортная - для нее нужен 32-разрядный транспортный канал.
Я бы еще понял, eсли бы ты привел в пример UCS2 (хотя тут тоже вопрос спорный)

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

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