Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Wordpress PHP изменяет работу функции? о_О

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет! Пишу плагин к вордпрессу и вот наткнулся на такой удручающий факт:
 
$a=preg_split("#([\w]+)#i","Привет, дружище!",-1,PREG_SPLIT_DELIM_CAPTURE);
print_r($a);
 
возвращает
 
Array
(
    [0] =>  
    [1] => Привет
    [2] => ,  
    [3] => дружище
    [4] => !
)
 
То есть правильно, при этом если та же конструкция внутри плагина
 
$this->words=preg_split("#([\w]+)#i","Привет, дружище!",-1,PREG_SPLIT_DELIM_CAPTURE);
print_r($this->words);
 
PHP возвращает  
Array
(
    [0] =>  
    [1] => Приве�
    [2] => �,  
    [3] => дру�
    [4] => �
    [5] => и�
    [6] => �
    [7] => е
    [8] => !
)
при чем это значение постоянно меняется.... Такие странные глюки мне без вашей помощи будет сложно разрулить. В чем загвоздка? Спасибо!

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 22:16 30-11-2007 | Исправлено: roddik, 22:28 30-11-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roddik

Цитата:
Такие странные глюки мне без вашей помощи будет сложно разрулить. В чем загвоздка?

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


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:17 30-11-2007 | Исправлено: Cheery, 22:20 30-11-2007
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Действительно, по ошибке указал разные, сейчас исправлю, на самом деле результат не меняется
 
Нашел в коде вордпресса такую строку return iconv(get_option ("dccharset"),"UTF-8",$s);
значит вроде действительно идет в утф8, то есть можно попробовать сконвертить из утф8, но в какую?

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 22:27 30-11-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roddik

Цитата:
значит вроде действительно идет в утф8, то есть можно попробовать сконвертить из утф8, но в какую?

зачем?
www.php.net/mb_split


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:29 30-11-2007
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
оу, не знал о такой функции, попробовал заюзать, оставив такую же регулярку - вернуло массив с одной же строкой - не разбило, спросил у ггла, тот ответил вроде, что надо без можификаторов и ограничителей использовать, тот же результат... даже не знаю, может все-таки лучше сконвертить?  
 
 
все-таки странная функция, запустить пока не удалось
 
 
 
blog_charset стоит утф-8, кстати, такая лажа наблюдается даже если просто в только что поставленном ВП в плагине Hello Dolly заменить текст на русский - тоже перестанет работать
 
 
 
 
а, фигня нашел по mb_ функциям
value of mbstring.func_overload      original function      overloaded function
...
4     ereg_replace()     mb_ereg_replace()
4     eregi_replace()     mb_eregi_replace()
4     split()     mb_split()
значит mb_split() это аналог split(), а мне-то надо preg_split, в том смысле что надо delimiters сохранять.... да уж, дело темное

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 22:43 30-11-2007 | Исправлено: roddik, 23:51 30-11-2007
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Wordpress PHP изменяет работу функции? о_О


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru