| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > Регулярное выражение не находит русские слова |
| Автор: AmraKimmerian 2.11.2009, 19:41 |
| С помощью fgets получаю html-код страницы сайта. Если его рендерить в браузере или просматривать с помощью браузера исходный html-код, то все русские слова прекрасно отображаются. Но регулярное выражение не находит эти русские слова в этом html-коде, сохраненном в переменной. С латинскими словами, цифрами и другими символами все в порядке - находит. В чем может быть проблема? В кодировке текста? Подскажите, пожалуйста. |
| Автор: bars80080 2.11.2009, 20:00 |
| наверное, если вы приведёте код регулярки, помочь будет проще |
| Автор: AmraKimmerian 2.11.2009, 20:11 | ||
где $f2 - html-код, полученный ос страницы сайта. |
| Автор: bars80080 2.11.2009, 20:17 |
| в какой кодировке распарсиваемая страница? в какой кодировке скрипт? |
| Автор: AmraKimmerian 2.11.2009, 20:41 |
| Ээээ, хммм.. исходный html-код в браузере показан в UTF-8. А мой php похоже ANSI. Как же их уровнять? с помощью setLocale? Хм... а что там нада написать? |
| Автор: bars80080 2.11.2009, 22:57 |
| есть iconv() конвертнуть либо в одну, либо в другую сторону. конечно проще конвертнуть в ютф-8 слово "регионы". но если будете сохранять полученные данные у себя в базе, то всё равно придётся их приводить к общему на сайте виду |
| Автор: AmraKimmerian 4.11.2009, 14:21 | ||
| "...либо в одну, либо в другую сторону." Честно говоря, не понял, что куда нужно конвертировать и разве возможно конвертировать в X то что уже в X? Как точно узнать, из какой кодировки в какую нужно конвертировать? Может ли тут помочь setLocale? Почему не использовать его?
Эхо ничего не выводит. |
| Автор: bars80080 4.11.2009, 14:37 | ||
| ну, всё достигается опытным путём я имел ввиду, что либо слово "регионы" преобразовать в ютф8, что проще, так как это одно слово но это подстройка под чужой сайт. если же вы собираетесь полученные данные сохранять у себя, то всё равно придётся конвертировать в свою кодировку может:
? |
| Автор: AmraKimmerian 4.11.2009, 15:47 | ||
| "ну, всё достигается опытным путём" Да, действительно!
Так все заработало: и находит и возвращает в читаемом виде. bars80080, спасибо! |
| Автор: Pitlord 5.11.2009, 23:29 |
Надо просто в мануал смотреть: http://php.net/iconv Во-первых, в данном случае Вам надо просто исходный PHP-файл сохранять в UTF-8, во-вторых, необходимо добавить модификатор "u" в выражение, т.к. Вы работаете с UTF-8. |