Показать сообщение отдельно

  #3  
Старый 25.06.2007, 01:33
hhover
Познающий
Регистрация: 21.05.2007
Сообщений: 61
С нами: 9986942

Репутация: 145
По умолчанию

Есть более адекватный код с использованием регэкспов, данные о выдаваемых сайтах записываются в массив, как вывести в браузер отчеты и записать инфу в файл - додумаешься сам, я думаю.
PHP код:
<?php
set_time_limit
(0);
echo 
"<pre>";

function 
curl_getsource ( $url )
{
  
$curl = curl_init();
  
curl_setopt ( $curl, CURLOPT_URL, $url );
  
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );
  
$source = curl_exec ( $curl );
  
curl_close ( $curl );
  return 
$source;
}

function 
query ( $keyword, $start=0 )
{
  global 
$max_page;
  
  if ( 
$start >= $max_page )
    die ( 
"All over" );

  
$keyword = trim ( $keyword );
  
$keyword = str_replace ( " ", "+", $keyword );

  
$url = "http://www.google.com/search?hl=en&q=" . $keyword . "&start=" . $start;
  
$source = curl_getsource ( $url );

  
preg_match_all ( "/\<h2\sclass\=r\>\<a\shref\=\"([^\"]+?)\"[^\>]+?\>(.+?)\<\/a\>.+?class\=\"j\"\>\<font\ssize\=\-1\>(.+?)\<br\>/is", $source, $result, PREG_SET_ORDER );

  foreach ( 
$result as $info )
  {
    
$link = $info[1];
    
$title = $info[2];
    
$desc = $info[3];
    
$links[] = array ( 'link' => $link, 'title' => $title, 'desc' => $desc );
  }
  
print_r($links);
  
  
$start += 10;
  
query ( $keyword, $start );

}

$max_page = 30;
query ( 'keyword' );
?>
А прошлый код, кстати, продублировал 4 раза линки с первой страницы. Заметно даже в посте Isis.
 
Ответить с цитированием