Version: 1.0
Type: Sample Code (HOWTO)
Category: HTTP
License: GNU General Public License
Description: Searches AllTheWeb, Google, Yahoo, Excite and more search engines and turns it into an array. Manual included in script.
Manual: $search = WebSearch(your text to search here) $search[search #]["num_results"] - Returns Number of Results $search[search #]["link"] - Return the URL $search[search #]["title"] - Title $search[search #]["description"] - Part of text (eg. <B>Chocolate</B> is cool) ----------------- <? function WebSearch($tosearch) { $q = urlencode($tosearch); $start = time(); $eng[0]['url'] = "http://www.google.com/search?q=$q&hl=en&lr=&safe=off&start=0&sa=N"; $eng[0]['name'] = "Google"; $eng[0]['reg'] = "/<p><A HREF=(.*?)>(.*?)</A><font.*?<br>(.*?)<br>/"; $eng[0]['strip'] = "n"; $eng[1]['url'] = "http://www.alltheweb.com/search?cat=web&lang=any&query=$q"; $eng[1]['name'] = "AllTheWeb"; $eng[1]['reg'] = '/<dt>.*?href="(.*?)">(.*?)</a>.*?<dd>(.*?)<br>/i'; $eng[1]['strip'] = "n"; $eng[2]['url'] = "http://altavista.com/sites/search/web?q=$q&enc=&kl=XX&search=Search"; $eng[2]['name'] = "Altavista"; $eng[2]['reg'] = "/<A .*?status='(.*?)'.*?">(.*?)</A>.*?<BR>(.*?)<BR>/i"; $eng[2]['strip'] = "n"; $eng[3]['url'] = "http://search.msn.com/results.asp?ba=(0.0)0&co=(0.10)4.1..2.1.4.1&FORM=MSNH&RS=CHECKED&q=$q&v=1"; $eng[3]['name'] = "MSN"; $eng[3]['reg'] = "/<A CLASS.*?href="(.*?)">(.*?)</A><br.*?>(.*?)<br/i"; $eng[3]['strip'] = ""; $eng[4]['url'] = "http://search.excite.com/search.gw?c=web&search=$q&onload="; $eng[4]['name'] = "Excite"; $eng[4]['reg'] = "/pos=.*?;(http.*?)onMouse.*?<b>(.*?)<br>.*?size8>(.*?)</span>/i"; $eng[4]['strip'] = "n"; $eng[5]['url'] = "http://google.yahoo.com/bin/query?p=$q&hc=1&hs=4"; $eng[5]['name'] = "Yahoo"; $eng[5]['reg'] = "/href.*?*(.*?)">(.*?)<br>.*?</b>(.*?)<br>/i"; $eng[5]['strip'] = "n"; $urls = array(); $out = array(); $y=0; foreach($eng as $c) { $text1 = join("",file($c['url'])); if($c[strip]) $text1 = ereg_replace($c[strip],"",$text1); preg_match_all($c['reg'],$text1,$matches); $num = count($matches[0]); for($x=0;$x<$num;$x++) { $url = strip_tags($matches[1][$x]); $title = strip_tags($matches[2][$x]); $description = strip_tags($matches[3][$x]); $engine = $c[name]; if($out["$url"]) { $out["$url"][engine] .= ", $engine"; } else { $out["$url"][title] = $title; $out["$url"][description] = $description; $out["$url"][engine] = $engine; } $y++; } }#rof while(list($url,$rec) = each($out)) { extract($rec); $returned_array = array(); for($i=0; $i < count($out); $i++) { $returned_array[$i]["secs"] = time() - $start; $returned_array[$i]["num_results"] = $y; $returned_array[$i]["link"] = $url; $returned_array[$i]["title"] = $title; $returned_array[$i]["description"] = $description; return $returned_array; } } } ?>