Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/163: Рейтинг темы: голосов - 163, средняя оценка - 4.63
 Аватар для altemka
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 26

file_get_contents() и кодировка

24.11.2012, 21:33. Показов 31261. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени дня.

Моя проблема в следующем.

PHP
1
2
3
$page = file_get_contents ( 'url' );
$count_words = preg_match_all ( '/london/i', $page, $matches );
echo $count_words;
Я получаю страницу и ищу в ней какое-то слово. Далее просто вывод на экран количество совпадений.

Все норм, если я ищу слова на латинице. Если же искать русские слова - количество совпадений 0.
PHP
1
2
3
4
5
//...
 
$count_words = preg_match_all ( '/лондон/i', $page, $matches );
 
//...
Вывел полученную страницу

PHP
1
echo $page;
На экране крякозябры,поэтому поиск не осуществляется. Как исправить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2012, 21:33
Ответы с готовыми решениями:

Кодировка file_get_contents()
Пользователь через сайт загружает файл на сервер. Его нужно обработать, например, найти заданную строку, и отобразить на странице. ...

File_get_contents
Доброго времени суток! Возникла проблема - не выводятся отзывы с digiseller. Дело в том, что когда устанавливаю скрипт на хостинге, с горем...

file_get_contents
Функция file_get_contents не хочет работать с доменами рф, как быть? Добавлено через 5 минут fopen тоже выдает ошибку

12
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
24.11.2012, 21:46
altemka, посмотрите в какой кодировке файл с вашим скриптом, затем посмотрите в какой кодировке идут данные с сайта, информацию с которого вы получаете и используйте iconv() для конвертирования кодировки данных в переменной $page в вашу кодировку. И ещё: если ваша кодировка UTF-8 - в регулярном выращении добавьте модификатор "u".
0
 Аватар для altemka
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 26
24.11.2012, 22:39  [ТС]
Блин,что то не помогает.

Вверх еще добавил
PHP
1
@header ("Content-Type: text/html; charset=UTF-8");
И там, где сказали
PHP
1
$count_words = preg_match_all ( '/лондон/U', $page, $matches );
iconv() и до этого пробовал, но вроде везде одинаковая кодировка

Кстати, url - гугловский поисковой запрос

http://www.google.ru/search?q=

Но вроде,там utf-8

Где я ошибся, может быть?
0
12 / 12 / 8
Регистрация: 20.05.2012
Сообщений: 120
25.11.2012, 01:42
altemka, в дополнение могу сказать следующее. Создай файл .htaccess и пропиши в нём:
Code
1
AddDefaultCharset UTF-8
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
25.11.2012, 08:14
altemka, вы написали в регулярке "U" вместо "u". Это разные модификаторы. Нужно написать маленькую "u" (в нижнем регистре).
0
 Аватар для altemka
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 26
25.11.2012, 15:45  [ТС]
Изменил на u. Добавил файл. В гугле опять крякозябры. Зато, если поменять на аналогичный запрос яндекса, то все норм.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
25.11.2012, 16:42
altemka, я посмотрел, вам нужно преобразовать из кодировки windows-1251 в кодировку UTF-8 при выводе страницы гугла.
Т.е.:
PHP
1
2
3
4
5
<?
    $page = file_get_contents ( 'тут запрос к Гуглу' );
    
    echo iconv('windows-1251', 'utf-8', $page);
?>
2
 Аватар для altemka
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 26
25.11.2012, 17:00  [ТС]
well done!

Огромное спасибо!

Добавлено через 7 минут
Правда вот теперь категорически отказывается искать любые слова
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
25.11.2012, 17:14
У меня нормально, 29 выводит :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
    # Получаем HTML-код с гугла по запросу "тест"
    $page = file_get_contents ( 'http://www.google.ru/search?q=' . urlencode( 'тест' ) );
    
    # Конвертируем кодировку
    $page = iconv('windows-1251', 'utf-8', $page);
    
    # Ищем слово "тест"
    $count_words = preg_match_all ( '/тест/u', $page, $matches );
    
    # Выводим количество
    echo $count_words;
?>
Кодировка файла со скриптом в UTF-8.

Добавлено через 3 минуты
Кстати, тут не обязательно использовать preg_match. Можно использовать substr_count(), для UTF-8 - mb_substr_count().
1
 Аватар для altemka
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 26
26.11.2012, 14:04  [ТС]
Замечательно Теперь элементарное.

Как в качестве аргумента в urlencode() использовать переменную?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
26.11.2012, 14:10
PHP
1
urlencode($varName);
1
 Аватар для altemka
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 26
26.11.2012, 14:15  [ТС]
Да, это очевидно. Просто кидало на главную гугла. Сейчас вроде бы норм
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
26.11.2012, 14:37
Просто до вызова этой функции создаёте переменную с текстом для запроса и в аргументе функции указываете эту переменную:
PHP
1
2
3
4
5
# Инициализируем переменную
$request = 'текст для запроса';
 
# Вызываем urlencode()
urlencode( $request );
Добавлено через 56 секунд

Не по теме:

Ой, вторую страницу не заметил :D. По ходу вы разобрались уже.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2012, 14:37
Помогаю со студенческими работами здесь

file_get_contents
Пишу file_get_contents(path) У себя на компе всё нормально работает, выводит код запрашиваемой страницы. Заливаю на сервер, не...

file_get_contents
Доброго времени суток, уважаемые форумчане! Мое знакомство с php началось совсем недавно, но к сожалению пока что моих знаний не хватает...

File_get_contents
Через file_get_contents получаю код другой страницы для создания нужной мне формы отправки заявок на моем сайте. Как вносить изменения в...

file_get_contents
Здравствуйте. Изучаю php. Решить надо следующую задачу. Для примера взял сайт http://kino.nsk.ru/ т.к. он работает как я понял на...

file_get_contents
Я с помощью file_get_contents подгружаю сайт но мне нужно сделать так чтобы URL (сначало был мой далее сайт) К примеру загружаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru