Hello, my current host has disabled fopen for security purposes, I have a search escript wich now it wont work, I will appreciate if someone can convert this file to use if with curl instead for fopen.
Thank you in advanced, any help will be much appreciated.
<?
//DMOZ
$DELAY = 5;
$DMOZ_URL = "http://search.dmoz.org/cgi-bin/search?";
$TRY_CONNECTIONS = 20;
$SEARCHFEED_URL = "http://www.searchfeed.com/rd/feed/XMLFeed.jsp?";
$RAGING_URL = "http://www.altavista.com/web/res_text?avkw=xytx&amb=txt&kls=0&kgs=0";
//microseconds
$TRY_PAUSE = 5;
function Pause($delay = 10){
$ts = explode(" ", microtime());
$start_t = $ts[0] + $ts[1]*1000;
do{
$ts = explode(" ", microtime());
$c_t = $ts[0] + $ts[1]*1000;
}while(($c_t - $start_t)<=$delay);
}
function GetDMOZResults(&$results, $ss, $start = 1, $num = 1){
global $DMOZ_URL;
global $TRY_CONNECTIONS, $TRY_PAUSE;
$results = array(
"0" => array(
"title"=>"",
"link"=>"",
"summary"=>"",
"category"=>""
)
);
$link = $DMOZ_URL."search=".urlencode($ss)."&start=".$start;
$cc = 1;
while(!($fh = @fopen($link, 'r'))){
if($cc==$TRY_CONNECTIONS) break;
$cc++;
Pause($TRY_PAUSE);
}
if($fh)
{
$buff = "";
$tmp = "";
$tmp_arr = array();
while($buff = fread($fh, 256)){
$tmp.=$buff;
}
fclose($fh);
$sc = 0;
if(preg_match("/Open Directory Sites.*?(\d+?)\)/", $tmp, $m1)){
$sc = $m1[1];
}
$tmp = preg_replace("/^.*Open Directory Sites/", "", $tmp);
$tmp = preg_replace("/<img.*?>/", "", $tmp);
$count = 1;
if(preg_match_all("/<li>(<a href=\"http:.*?)(?:<li>|<\/ol>)/s", $tmp, $matches)){
foreach($matches[1] as $st){
if($count<=$num&&$count<=$sc){
if(preg_match("/^<a href=\"(.*?)\">(.*?)<\/a>(.*?)<br>.*?<a href=\".*?\">(.*?)<\/a>/s", $st, $m2)){
$linkurl = $m2[1];
$title = $m2[2];
$summary = $m2[3];
$category = $m2[4];
}
// print $count." - ".$title."<hr>";
$results[$count] = array(
"title"=>$title,
"link"=>$linkurl,
"summary"=>$summary,
"category"=>$category
);
$count++;
}else{
break;
}
}
return $sc;
}else return "";
}else{
return "";
}
}
function PPCParseRecord_External($type, $record, $counter, $page, $rpp, $hs, $ss, $rest){
global $PPC_RESULTS_PART, $CLICK_SCRIPT, $CLICK_TARGET, $MAIN_URL;
$tmp = ReadTemplate($PPC_RESULTS_PART);
$shl = "";
if($rest=="dmoz"||$rest=="msn"){
if(preg_match("/(http:\/\/(?:[-\w]\.?)+\/??)/", $record["link"], $mm)){
$shl = $mm[1];
$cat = $record["category"];
}
}elseif($rest=="revenue"){
$shl = $record["category"];
$cat = "n/a";
}
$vars = array(
"logo"=>"",
"counter"=>$counter,
"id"=>"",
"title"=>"<a href=\"".$record["link"]."\" target=\"_blank\">".$record["title"]."</a>",
"summary"=>($hs==0?stripslashes($record["summary"]):"").($record["bid"]!=""?"<br><i>Bid: ".$record["bid"]."</i>":""),
"link"=>$shl,
"category"=>$cat
);
return ParseTemplate($tmp, $vars);
}
//END OF DMOZ
//SEARCHFEED XML FEEDS
function GetSearchFeedResults(&$results, $ss, $start = 1, $num = 1){
global $SEARCHFEED_URL, $TRY_CONNECTIONS, $TRY_PAUSE;
global $SEARCHFEED_CID;
$results = array(
"0" => array(
"title"=>"",
"link"=>"",
"summary"=>"",
"category"=>"",
"bid"=>""
)
);
//$SEARCHFEED_CID = GetSettings("searchfeed_id");
$link = $SEARCHFEED_URL."cat=".urlencode($ss)."&pID=".$SEARCHFEED_CID."&IP=".getenv("REMOTE_ADDR")."&page=".($start)."&nl=".$num;
$cc = 1;
while(!($fh = @fopen($link, 'r'))){
if($cc==$TRY_CONNECTIONS) break;
$cc++;
Pause($TRY_PAUSE);
}
if($fh)
{
$buff = "";
$tmp = "";
$tmp_arr = array();
while($buff = fread($fh, 256)){
$tmp.=$buff;
}
fclose($fh);
/*
print "SF working...<hr>";
$ft = fopen("temp2.txt","a");
fwrite($ft, "\n\n$link\n\n");
fwrite($ft, $tmp);
fclose($ft);
*/
$sc = $num;
$count = 1;
if(preg_match("/<Listings>(.*)<\/Listings>/is", $tmp, $matches)){
$recs = $matches[1];
if(preg_match("/<Count>(.*?)<\/Count>/is", $recs, $m1)){
$sc = $m1[1];
}
if(preg_match_all("/<Listing>(.*?)<\/Listing>/is", $recs, $m1)){
foreach($m1[1] as $tt){
if(preg_match("/<URI>\s*(.*)\s*<\/URI>/is", $tt, $m2)){
$linkurl = $m2[1];
}
if(preg_match("/<URL>\s*(.*)\s*<\/URL>/is", $tt, $m2)){
$category = $m2[1];
}
if(preg_match("/<Title>\s*<!\[CDATA\[(.*)\]\]>\s*<\/Title>/is", $tt, $m2)){
$title = $m2[1];
}
if(preg_match("/<Description>\s*<!\[CDATA\[(.*)\]\]>\s*<\/Description>/is", $tt, $m2)){
$summary = $m2[1];
}
if(preg_match("/<Bid>\s*(.*)\s*<\/Bid>/is", $tt, $m2)){
$bid = $m2[1];
}
/*
$ft = fopen("temp.txt","a");
fwrite($ft, "$title\n$summary\n$linkurl\n$category\n$bid\n---------------------------\n");
fclose($ft);
*/
$results[$count] = array(
"title"=>$title,
"link"=>$linkurl,
"summary"=>$summary,
"category"=>$category,
"bid"=>$bid
);
$count++;
}
}
return $sc;
}else return "";
}else{
return "";
}
}
//END OF SEARCHFEEDS XML FEEDS
//RAGING FEEDS
function GetRAGINGResults(&$results, $ss, $start = 1, $num = 1){
global $RAGING_URL;
global $TRY_CONNECTIONS, $TRY_PAUSE;
$results = array(
"0" => array(
"title"=>"",
"link"=>"",
"summary"=>"",
"category"=>""
)
);
// $link = $RAGING_URL."&q=".urlencode($ss)."&stq=".$start;
$link = "http://www.altavista.com/web/results?q=".urlencode($ss)."&stq=".$start;
$cc = 1;
while(!($fh = @fopen($link, 'r'))){
if($cc==$TRY_CONNECTIONS) break;
$cc++;
Pause($TRY_PAUSE);
}
if($fh){
$buff = "";
$tmp = "";
$tmp_arr = array();
while($buff = fread($fh, 256)){
$tmp.=$buff;
}
fclose($fh);
}
$sc = 0;
/*
if(preg_match("/found ([\d\,]+) results\s+<\/a>/i", $tmp, $m1)){
$sc = $m1[1];
}
*/
//new
if(preg_match("/found (.*?) results/i", $tmp, $m1)){
$sc = $m1[1];
$sc = preg_replace("/,/","",$sc);
}
//new
$str_pos = strpos($tmp,"found $sc results") + 15;
$tmp = substr($tmp,$str_pos);
// if (preg_match_all("/<a\n*\s+href\s*=\"\/r\?ck_sm=([^\"]*)[^>]*>([^<]*)<\/a><br><\/b><span class=s>(.*)<br>/",$tmp,$array))
if (preg_match_all("/<br class='lb'><a class='res' href=\'(.*?)\'>(.*?)<\/a><br><span class=s>(.*?)<br>/si",$tmp,$array))
{
$i=0;
while($i<count($array[1]))
{
// $linkurl="http://www.altavista.com/r?ck_sm=".$array[1][$i];
$linkurl=$array[1][$i];
$title=$array[2][$i];
$summary=$array[3][$i];
$category = "n/a";
$results[$i+1] = array(
"title"=>$title,
"link"=>$linkurl,
"summary"=>$summary,
"category"=>$category
);
$i++;
/* echo "$title <br>";
echo "$linkurl <br>";
echo "$summary <br>";
*/
}
}
return $sc;
}
?>