Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2012, 18:47   #1
Tepper
Новичок
Джуниор
 
Регистрация: 18.09.2012
Сообщений: 5
По умолчанию Регулярное выражение для Яндекса,кодировка

Вообщем проблема такая.Регулярное выражение некорректно работает с русскими символами
Например вот это
PHP код:
$yaGetPages file_get_contents('http://yandex.ru/yandsearch?text=site:'.$site.'');
$GetPages preg_match_all('/[а-я]/',$yaGetPages,$yaPages);
print_r($yaPages); 
дает такой ответ
PHP код:
Array ( [0] => Array ( [0] => Р [1] => Р [2] => № [3] => Р [4] => Р [5] => Ѕ [6] => Р [7] => ґ [8] => Р [9] => µ [10] => Р [11] => є [12] => С [13] => Р [14] => ѕ [15] => Р [16] => № [17] => Р [18] => Р [19] => ° [20] => Р [21] => ј [22] => Р [23] => ѕ [24] => С [25] => Р [26] => µ [27] => Р [28] => Ѕ [29] => С [30] => Р [31] => ¶ [32
и тд....

Как я уж только не извращался и через iconv пытался,если меня кодровку страницы скрипта на win-1251 то вообще ничего не находит..
С латинскими симловами работает хорошо.
Помогите пожалуйста сделать так чтобы работали шаблоны с кириллицей...
Tepper вне форума Ответить с цитированием
Старый 18.09.2012, 22:39   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Ну вы хотя бы на этом форуме поискали, 100 раз этот вопрос задавался
Ставите кодировку utf-8 и в регулярку добавляете специальный флаг 'u'
Код:
$GetPages = preg_match_all('/[а-я]/ui',$yaGetPages,$yaPages);
Cronos20 вне форума Ответить с цитированием
Старый 19.09.2012, 11:50   #3
Tepper
Новичок
Джуниор
 
Регистрация: 18.09.2012
Сообщений: 5
По умолчанию

Спасибо сделал так.Но вот я например пишу такое

PHP код:
$yaGetPages file_get_contents('http://yandex.ru/yandsearch?text=site:'.$site.'');
$GetPages preg_match_all('/Яндекс/ui',$yaGetPages,$yaPages);
print_r($yaPages); 
у меня выводит
PHP код:
Array ( [0] => Array ( [0] => аЏаНаДаЕаКб [1] => аЏаНаДаЕаКб [2] => аЏаНаДаЕаКб [3] => аЏаНаДаЕаКб [4] => аЏаНаДаЕаКб ) ) 
Хотя должно быть там слово яндекс.
С латинскими символами норм работает
Tepper вне форума Ответить с цитированием
Старый 19.09.2012, 12:22   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

возможно получаемый результат не в той кодировке, в которой вы выводите?
ADSoft на форуме Ответить с цитированием
Старый 19.09.2012, 12:50   #5
Tepper
Новичок
Джуниор
 
Регистрация: 18.09.2012
Сообщений: 5
По умолчанию

Спасибо,сделал вот так вот
PHP код:
$yaGetPages file_get_contents('http://yandex.ru/yandsearch?text=site:'.$site.'');
$GetPages preg_match('/Яндекс/ui',$yaGetPages,$yaPages);
$yaPages implode("",$yaPages);
$yaPages iconv("UTF-8","windows-1251",$yaPages);
print_r($yaPages); 
заработало
Tepper вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение для константы цвета html flower25 C# (си шарп) 3 16.12.2011 10:35
регулярное выражение для создания массива aferistz PHP 1 28.03.2011 11:40
Регулярное выражение для удаления английских слов из текста Se0mashines PHP 1 30.10.2010 22:53
Регулярное выражение! Evgen1984 Общие вопросы .NET 4 14.09.2010 19:44
регулярное выражение XeN0N Помощь студентам 1 27.01.2009 15:14