[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: html parser
stas90
Здравствуйте,

нужно написать скрипт, который может загрузить кусок сайта, начинающийся с тега <tag xxxfasq
и заканчивающийся на </tag xxxfasq>

как это сделать?

Спасибо!



Спустя 1 минута, 54 секунды (26.09.2011 - 06:46) inpost написал(а):
file_get_contents('ссылко');
Далее регуляркой preg_match.

Спустя 2 минуты, 7 секунд (26.09.2011 - 06:48) stas90 написал(а):

<?php
$url = "http://www.site.ru";
$unique_start = "<h3>";
$unique_end = "</h3>";
function weather($url, $unique_start, $unique_end) {
$code = file_get_contents($url);
preg_match('/'.preg_quote($unique_start,
'/').'(.*)'.preg_quote($unique_end, '/').'/Us', $code, $match);
return $match[1];
}
echo weather($url, $unique_start, $unique_end); ?>


вместо site.ru можете указать любой адрес сайта, этот скрипт показывает погоду
скорее всего запрос file_get_contents блокируется большинством серверов

Спустя 21 минута, 27 секунд (26.09.2011 - 07:09) inpost написал(а):
Это вопрос или утверждение? Вроде отлично работает file_get_contents smile.gif Ну если твой сервер не внесли в спам-лист из-за слишком частых обращений.

Спустя 14 минут, 1 секунда (26.09.2011 - 07:23) stas90 написал(а):
это предположение, попробуйте мой скрипт, почему-то он не работает ни на одном из сайтов...

Спустя 5 минут, 38 секунд (26.09.2011 - 07:29) inpost написал(а):
        $page = file_get_contents("http://ip-whois.net/ip_geo.php?ip=".$info['intIp']); // твой IP подставь.
$page = iconv('cp1251', 'utf-8', $page);
preg_match('|Страна: (.*?)<br>|ius',$page,$fulltext['country']);
preg_match('|Регион: (.*?)<br>|ius',$page,$fulltext['region']);
preg_match('|Город: (.*?)\"|ius',$page,$fulltext['city']);
$info['country'] = $fulltext['country'][1];
$info['region'] = $fulltext['region'][1];
$info['city'] = $fulltext['city'][1];
print_r($info);

Вот запустил, все норм работает.

Спустя 18 минут, 14 секунд (26.09.2011 - 07:47) stas90 написал(а):
как оказалось, проблема была в том, что я не правильно ставил теги начала и конца

сейчас другая проблема, результат выводится в непонятной кодировке
вот пример:
"а—ааž "аœаОаБаИаКаОаМ-ааОаВаОбаИаБаИб€баК" (аœаЕаГаАаЄаОаН аЁаИаБаИб€бŒ) аЁаАаЙб‚"

делаю так:


<?php

$url="http://site.ru";

$unique_start = " <table cellpadding=\"4\" cellspacing=\"0\" style=\"width: 100%\">";
$unique_end = "</table>";
function weather($url, $unique_start, $unique_end) {
$code = file_get_contents($url);
//$code = iconv('cp1251', 'utf-8', $code);
preg_match('/'.preg_quote($unique_start,
'/').'(.*)'.preg_quote($unique_end, '/').'/Us', $code, $match);
return $match[1];
}
echo weather($url, $unique_start, $unique_end); ?>


пока iconv закомментирован - результат есть, если его раскомментировать - выводится пустая страница

Спустя 6 минут, 9 секунд (26.09.2011 - 07:53) inpost написал(а):
stas90
Сначала file_get_contents. Полученную страницу выведи через echo. Если кодировки не совпадают (твои с тем сайтом), то через iconv поменяй кодировку переменной $code.
Посмотри кодировку своего сайта и кодировку того, с которого берёшь данные.

Спустя 6 минут, 15 секунд (26.09.2011 - 07:59) stas90 написал(а):
Огромное спасибо за помощь!!!
Все получилось,
поставил: iconv('utf-8', 'cp1251', $code);



PS: Жалко плюсануть не могу (т.к. меньше 10 постов)...

Спустя 11 минут, 32 секунды (26.09.2011 - 08:11) inpost написал(а):
stas90
Куда уж больше! Лучше приходи ещё, спрашивай вопросы smile.gif Новые люди куда приятнее, чем новые плюсики smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.