我想輸入很長的URL列表並搜索源代碼中的特定字符串,輸出包含字符串的URL列表。聽起來很簡單吧?我已經拿出了下面的代碼,輸入是一個html表單。你可以在pelican-cement.com/findfrog上試試。通過許多URL在源代碼中查找字符串的代碼
它似乎工作了一半時間,但是被不同順序的多個網址/網址拋出。搜索「AdSense」的它正確地標識出politics1.com的
cnn.com
politics1.com
然而,如果顛倒輸出是空白。我如何獲得可靠,一致的結果?最好是我可以輸入數千個網址的東西?
<html>
<body>
<?
set_time_limit (0);
$urls=explode("\n", $_POST['url']);
$allurls=count($urls);
for ($counter = 0; $counter <= $allurls; $counter++) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$urls[$counter]);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_exec ($ch);
$curl_scraped_page=curl_exec($ch);
$haystack=strtolower($curl_scraped_page);
$needle=$_POST['proxy'];
if (strlen(strstr($haystack,$needle))>0) {
echo $urls[$counter];
echo "<br/>";
curl_close($ch);
}
}
//$FileNameSQL = "/googleresearch" . abs(rand(0,1000000000000000)) . ".csv";
//$query = "SELECT * FROM happyturtle INTO OUTFILE '$FileNameSQL' FIELDS TERMINATED BY ','";
//$result = mysql_query($query) or die(mysql_error());
//exit;
echo '$FileNameSQL';
?>
</body>
</html>
謝謝!現在的問題是,每當輸入超過50個URL時它就會超時。 @James An – user586011 2011-04-13 03:10:53
用PHP在批處理過程中包裝代碼要複雜得多。不需要立即處理表單提交,您需要將搜索詞和所有URL記錄在文件或數據庫中。然後,調用另一個PHP文件,該文件將在超時之前處理,將結果保存到文件或數據庫中,並返回一個HTML文件以顯示進度,並自動(刷新)再次調用批處理PHP文件,直到處理完所有URL 。 – 2011-04-13 11:01:05