<div style="overflow:auto">
<script language="php">
$curl=curl_init("http://www.sportbox.ru");
$proxy='us:psw@IP:port';
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
$content=curl_exec($curl);
preg_match_all('#<h3><a href(.*)>(.*)</a></h3>#siU', $content, $titles);
foreach ($titles[2] as $title)
echo "<b>$title</b><br>";
curl_close($content);
</script>
</div>
со страницами с этого же сайта регулярка работает, а из удалённых страниц заголовки не вытаскивает. Из-за чего это может быть?
Спустя 2 часа, 51 минута, 24 секунды (3.03.2011 - 22:57) l@pteff написал(а):
народ, ну попробуйте у себя такой код... без прокси выдаёт тоже самое (полностью страницу сайта):
если попробовать открыть через file_get_contents() выдаёт:
<div style="overflow:auto">
<script language="php">
$curl=curl_init("http://www.sportbox.ru");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$content=curl_exec($curl);
preg_match_all('#<h3><a href(.*)>(.*)</a></h3>#siU', $content, $titles);
foreach ($titles[2] as $title)
echo "<b>$title</b><br>";
curl_close($content);
</script>
</div>
если попробовать открыть через file_get_contents() выдаёт:
Цитата |
Warning: file_get_contents(http://www.sportbox.ru) [function.file-get-contents]: failed to open stream: HTTP request failed! in E:\my_projects\site.local\www\php\news.php on line 5 |
Спустя 16 часов, 13 минут, 16 секунд (4.03.2011 - 15:10) l@pteff написал(а):
ни у кого не возникала такая проблема? как ни менял регулярку -не помогло
Спустя 6 минут, 43 секунды (4.03.2011 - 15:17) DedMorozzz написал(а):
Всё работает и без прокси:
$b = file_get_contents('http://www.sportbox.ru');
preg_match_all('#<h4>.*?</h4>#',$b,$mathes);
echo "<pre>";
print_r($mathes);
echo "</pre>";
Спустя 18 минут, 49 секунд (4.03.2011 - 15:36) Trianon написал(а):
Цитата |
preg_match_all('#<h3><a href(.*)>(.*)</a></h3>#siU', $content, $titles); |
аккуратнее надо с захватом такими шаблонами.
Он же а) неоднозначный и б) жадный.
Сравните:
preg_match_all('#<h3><a href([^>]+)>([^<]+)<#siU', $content, $titles);
UPd. впрочем, насчет жадности я может и погорячился.
Спустя 36 минут, 4 секунды (4.03.2011 - 16:12) l@pteff написал(а):
DedMorozzz,
без прокси пишет:
без прокси пишет:
Цитата |
Warning: file_get_contents(http://www.sportbox.ru) [function.file-get-contents]: failed to open stream: HTTP request failed! in E:\my_projects\site.local\www\php\news.php on line 5 |
а через curl() открывает станицу целиком не обращая внимания на регулярку. даже не знаю что и думать...
Спустя 22 минуты, 43 секунды (4.03.2011 - 16:34) l@pteff написал(а):
Trianon, код конечно жадный, но это не окончательный вариант.