|
|
|
| Пришло письмо, с просьбой привести оный скрипт.
Пишу сюда, так как может кому-то еще покажется он интересным.
<?php
$query = "blablabla";
$page = 0;
$num = 10;
$host = "www.google.com";
$path = "/search.htm?q=$query&start=$page&num=$num";
if ( !$buffer = getdata($host, $path) ) {
exit("Ошибка");
}
if ( !$links = l_parse($buffer) ) {
echo "Не найдено ссылок";
} else {
print_r($links);
}
// функция получения страницы с удаленного хоста.
function getdata($host, $path)
{
$buffer = true;
$fp = @fsockopen("tcp://".$host, 80, $errno, $errstr, 10);
if (!$fp) {
return false;
} else {
$out = "GET $path HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Referer: $host$path\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$out .= "Connection: Close\r\n";
$out .= "\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$buffer .= fgets($fp, 1024);
}
fclose($fp);
}
return $buffer;
}
// отделяем ссылки
// с помощью рег. выражения
function l_parse($buffer)
{
$LinkRegEx = "!<a href=\"?'?(http://[^\"'>\s]+)!i";
preg_match_all($LinkRegEx, $buffer, $matches);
$size = sizeof($matches[1]);
if( empty($size) )
return false;
for($i = 0; $i < $size; $i++) {
// этим, мы удаляем лишние ссылки
if( !preg_match("/google|search?q=cache/i", $matches[1][$i]) ) {
$links[] = $matches[1][$i];
}
}
return $links;
}
?>
|
| |
|
|
|
|
|
|
|
для: Artem S.
(02.09.2005 в 16:00)
| | Давайте перенесём его в форум "Регулярные выражения", так как тема больше подходит для этого раздела http://www.softtime.ru/forum/index.php?id_forum=6. | |
|
|
|
|
|
|
|
для: cheops
(02.09.2005 в 20:42)
| | А для чего он нужен? Просвятите тёмного ;) | |
|
|
|
|
|
|
|
для: Sasha
(03.09.2005 в 19:59)
| | Ну если его переделать, то можно с помощью него узнать на каком месте находиться сайт по определенному запросу. | |
|
|
|