Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php /* This file is protected by copyright law and provided under license. Reverse engin..

Decoded Output download


if ( !defined('IN_ISEARCH') )
{
die('Hacking attempt');
}
function isearch_parseRobots($domain)
{
global $isearch_config;
global $isearch_table_info;
global $isearch_db;
global $isearch_base;
$isearch_config['robots_domains'][] = $domain;
$isearch_base_tmp = $isearch_base;
$allData = isearch_readFile("http://$domain/robots.txt");
$isearch_base = $isearch_base_tmp;
if ($allData != '')
{
$allData = strtolower($allData);
$lines = preg_split('#[
]+#',$allData);
$validUseragent = False;
$matched = False;
foreach ($lines as $line)
{
$line = preg_replace('/#.*$/','',$line);
$line = preg_replace('#\s+#',' ',$line);
$temp = explode(':',$line,2);
if (count($temp) == 2)
{
$field = trim($temp[0]);
$value = trim($temp[1]);
if ($field == 'user-agent')
{
$validUseragent = False;
$useragents = explode(' ',$value);
foreach ($useragents as $useragent)
{
if (($useragent == 'isearch') ||(($useragent == '*') &&(!$matched)))
{
$matched = True;
$validUseragent = True;
}
}
}
else if (($validUseragent) &&($field == 'disallow'))
{
if ($value == '')
{
unset($disallow);
}
else
{
$disallow[] = $value;
}
}
}
}
if (isset($disallow))
{
foreach ($disallow as $temp)
{
if ($temp{0}!= '/')
{
$temp = '/'.$temp;
}
$url = "^http://$domain$temp";
$url = str_replace('.','\.',$url);
$url = str_replace('*','.*',$url);
$url = str_replace('?','\?',$url);
$url = str_replace('+','\+',$url);
$isearch_config['robots_excludes'][] = $url;
}
}
}
if (!mysql_query("UPDATE $isearch_table_info SET robots_domains='".isearch_escape_string(implode(" ",$isearch_config['robots_domains'])) ."', robots_excludes='".isearch_escape_string(implode(" ",$isearch_config['robots_excludes'])) ."' WHERE id='1'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
}
function isearch_clearSpiderLog()
{
global $isearch_table_spider_log;
global $isearch_db;
mysql_query("DELETE FROM $isearch_table_spider_log",$isearch_db);
}
function isearch_getSpiderLog()
{
global $isearch_table_spider_log;
global $isearch_db;
$log = '';
$result = mysql_query("SELECT * FROM $isearch_table_spider_log ORDER BY id",$isearch_db);
if ($result)
{
while ($item = mysql_fetch_object($result))
{
$log .= $item->msg."
";
}
}
mysql_free_result($result);
return $log;
}
function isearch_emailSpiderLog()
{
global $isearch_config;
global $isearch_table_info;
global $isearch_db;
$log = isearch_getSpiderLog();
if ($log == '')
{
$log = "Nothing has been logged.
";
}
$mailTo = $isearch_config['admin_email'];
$mailSubject = "iSearch spider log";
$mailBody = "The following has been logged in the spider log:
";
$mailBody .= "
";
$mailBody .= $log;
$mailBody .= "
";
$mailBody .= "This email is automatically generated by iSearch.
";
$mailBody .= "
";
$mailBody .= "Visit the iSearch home page at http://www.iSearchTheNet.com/isearch
";
$mailHeaders = "From: ".$isearch_config['admin_email'] ."
";
if (mail($mailTo,$mailSubject,$mailBody,$mailHeaders))
{
$now = time();
mysql_query("UPDATE $isearch_table_info SET spider_log_last_emailed='$now'",$isearch_db);
$isearch_config['spider_log_last_emailed'] = $now;
isearch_clearSpiderLog();
}
}
function isearch_spiderLog($string,$level=1)
{
global $isearch_table_spider_log;
global $isearch_db;
global $isearch_config;
global $isearch_fromCommandLine;
global $isearch_logEchoLevel;
if ($isearch_config['log_time'])
{
$string = date('M d, Y, H:i:s - ').$string;
}
if ($level <= $isearch_config['log_level'])
{
mysql_query("INSERT INTO $isearch_table_spider_log (msg) VALUES ('".isearch_escape_string($string) ."')",$isearch_db);
}
if (isset($isearch_fromCommandLine) &&$isearch_fromCommandLine)
{
if ($level <= $isearch_logEchoLevel)
{
echo "$string
";
}
}
else
{
if ($level <= $isearch_config['log_echo_level'])
{
echo str_replace(' ','&nbsp;',htmlentities($string)) ."<BR>
";
}
}
}
function isearch_cleanSpiderString($data)
{
$data = isearch_cleanString($data);
$data = preg_replace('#<.*?>#u',' ',$data);
$data = preg_replace('#["\;\?!]+#u',' ',$data);
if ($GLOBALS['isearch_config']['allow_dashes'] == 0)
{
$data = preg_replace('#-#u',' ',$data);
}
else if ($GLOBALS['isearch_config']['allow_dashes'] == 1)
{
$data = preg_replace('#( -)|(- )#u',' ',$data);
}
else if ($GLOBALS['isearch_config']['allow_dashes'] == 3)
{
$data = preg_replace('#-#u','',$data);
}
$data = preg_replace('#\s+#u',' ',$data);
return $data;
}
function isearch_convCharset($data,$charset)
{
if (function_exists('iconv'))
{
isearch_spiderLog("INFO: Converting $charset -> utf-8",5);
$convertedData = iconv($charset,'utf-8//TRANSLIT',$data);
if ($convertedData === False)
{
isearch_spiderLog("WARNING: Unable to convert $charset -> utf-8",3);
}
else
{
$data = $convertedData;
}
}
else
{
isearch_spiderLog("WARNING: iconv not installed - unable to convert $charset -> utf-8",5);
}
return $data;
}
function isearch_fread($handle,$length = 2147483647)
{
$bytesToRead = $length;
$contents = '';
while((!feof($handle)) &&($bytesToRead >0))
{
$data = fread($handle,($bytesToRead >16384) ?16384 : $bytesToRead);
$bytesToRead -= strlen($data);
$contents .= $data;
}
if (!feof($handle))
{
isearch_spiderLog('WARNING:    File reading was truncated at '.($length/1024).' kbytes',3);
}
return $contents;
}
function isearch_relativeToAbsoluteUrl($newUrl,$relativeToUrl)
{
if (preg_match('#^([a-z]+):#u',$newUrl))
{
$absoluteUrl = $newUrl;
}
else
{
$relativeParts = @parse_url($relativeToUrl);
if ((!isset($relativeParts['scheme'])) ||(!isset($relativeParts['host'])))
{
isearch_spiderLog("WARNING:    Unable to parse relativeToUrl [$relativeToUrl]",3);
return;
}
unset($relativeParts['query']);
unset($relativeParts['fragment']);
if (preg_match('#^/#',$newUrl))
{
unset($relativeParts['path']);
$siteUrl = glue_url($relativeParts);
$absoluteUrl = $siteUrl .$newUrl;
}
else
{
if (isset($relativeParts['path']))
{
$path = preg_replace('#/[^/]*\.[^/]*$#','/',$relativeParts['path']);
if (preg_match('#/$#',$path))
{
$path .= $newUrl;
}
else
{
$path .= '/'.$newUrl;
}
}
else
{
$path = '/'.$newUrl;
}
$path = preg_replace('#/\.$#','',$path);
$path = preg_replace('#/(\./)+#','/',$path);
$path = preg_replace('#//+#','/',$path);
$temp = explode('/',$path);
for ($i = 1;$i <count($temp);$i++)
{
if (($temp[$i] == "..") &&($i >1))
{
for ($j = $i +1;$j <count($temp);$j ++)
{
$temp[$j-2] = $temp[$j];
}
unset($temp[count($temp)-1]);
unset($temp[count($temp)-1]);
$i = $i -2;
}
}
$relativeParts['path'] = implode('/',$temp);
$absoluteUrl = glue_url($relativeParts);
}
}
return $absoluteUrl;
}
function isearch_readFile($url,$depth=0)
{
global $isearch_config;
global $isearch_version;
global $isearch_header;
global $isearch_base;
global $isearch_url_fopen_detected,$isearch_curl_detected,$isearch_sockets_detected;
$isearch_header = array();
isearch_spiderLog("TRACE: isearch_readFile($url, $depth)",10);
if ($depth >= 10)
{
isearch_spiderLog("WARNING: Inline frame depth limit $depth exceeded",3);
return '';
}
if ($isearch_config['url_search'] != '')
{
$url = preg_replace('#'.str_replace('#','\#',$isearch_config['url_search']).'#',$isearch_config['url_replace'],$url);
isearch_spiderLog("INFO: Using replaced URL $url",5);
}
if ($isearch_config['reading_mechanism'] == 0)
{
if (($isearch_curl_detected) &&(preg_match('#^(https?|ftps?|file)://#i',$url)))
{
$reading_mechanism = 3;
}
else if (($isearch_sockets_detected) &&(preg_match('#^https?://#i',$url)))
{
$reading_mechanism = 2;
}
else if (($isearch_url_fopen_detected) &&(!$isearch_config['proxy_enable']))
{
$reading_mechanism = 1;
}
else
{
isearch_spiderLog('ERROR: Unable to detect a suitable reading mechanism.',1);
return '';
}
}
else
{
$reading_mechanism = $isearch_config['reading_mechanism'];
}
$base = $url;
if ($reading_mechanism == 1)
{
isearch_spiderLog("INFO: Reading $url using fopen/fread",5);
$docData = '';
@ini_set('user_agent',"iSearch/$isearch_version");
if ($isearch_config['basic_authorization'] != '')
{
$url = str_replace('//','//'.$isearch_config['basic_authorization'].'@',$url);
}
$fp = @fopen($url,'r');
if ($fp)
{
if (function_exists('stream_get_meta_data'))
{
$meta_data = stream_get_meta_data($fp);
$header_data = $meta_data['wrapper_data'];
}
else
{
$header_data = $http_response_header;
}
$header = array();
foreach($header_data as $headerLine)
{
if (is_string($headerLine))
{
$data = explode(': ',$headerLine,2);
if (count($data) == 2)
{
$header[strtolower($data[0])] = $data[1];
}
}
}
if (isset($header['content-location']))
{
isearch_spiderLog("INFO: Content-Location: ".$header['content-location'],9);
$base = isearch_relativeToAbsoluteUrl($header['content-location'],$base);
}
else if (isset($header['location']))
{
isearch_spiderLog("INFO: Location: ".$header['location'],9);
$base = isearch_relativeToAbsoluteUrl($header['location'],$base);
}
$docData = isearch_fread($fp,$isearch_config['max_file_size']);
fclose($fp);
}
else
{
isearch_spiderLog("WARNING: Unable to fopen URL [$url]",preg_match('#/robots\.txt$#',$url) ?9 : 3);
return '';
}
}
else
{
$recurse = 10;
while (1)
{
$urlParts = @parse_url($url);
if ((!isset($urlParts['scheme'])) ||(!isset($urlParts['host'])))
{
isearch_spiderLog("WARNING: Unable to parse URL [$url]",3);
return '';
}
if (!preg_match('#^(https?|ftps?)$#i',$urlParts['scheme']))
{
isearch_spiderLog("WARNING: Unsupported URL scheme ".$urlParts['scheme'] ." [$url]",4);
return '';
}
if ($reading_mechanism == 2)
{
isearch_spiderLog("INFO: Reading $url using sockets",5);
if ($urlParts['scheme'] == 'http')
{
$secure = False;
}
else if ($urlParts['scheme'] == 'https')
{
$secure = True;
}
else
{
isearch_spiderLog("WARNING: URL scheme ".$urlParts['scheme'] ." not supported by sockets. Use CURL library. [$url]",3);
return '';
}
if ($isearch_config['proxy_enable'])
{
$host = $isearch_config['proxy_host'];
$port = $isearch_config['proxy_port'];
$secure = False;
}
else
{
$host = $urlParts['host'];
if (isset($urlParts['port']))
{
$port =  $urlParts['port'];
}
else
{
$port = $secure ?443 : 80;
}
}
$sock = fsockopen(($secure ?'ssl://': '').$host,$port,$errno,$errstr);
if (!$sock)
{
isearch_spiderLog("ERROR: Unable to open socket to ".$host ." ".$port ." - $errno : $errstr",1);
return '';
}
$request = "GET $url HTTP/1.0
";
$request .= "Host: $host
";
if (($isearch_config['proxy_enable']) &&($isearch_config['proxy_user'] != ''))
{
$request .= "Proxy-Authorization: Basic ".base64_encode ($isearch_config['proxy_user'].':'.$isearch_config['proxy_pass']) ."
";
}
$request .= "User-Agent: iSearch/$isearch_version
";
if ($isearch_config['basic_authorization'] != '')
{
$request .= "Authorization: Basic ".base64_encode($isearch_config['basic_authorization']) ."
";
}
$request .= "Connection: Close

";
fputs($sock,$request);
$allData = isearch_fread($sock,$isearch_config['max_file_size']);
fclose($sock);
}
else
{
isearch_spiderLog("INFO: Reading $url using CURL",5);
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_USERAGENT,"iSearch/$isearch_version");
curl_setopt($ch,CURLOPT_HEADER,TRUE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_HEADER,TRUE);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
curl_setopt($ch,CURLOPT_COOKIEJAR,"my_cookies.txt");
curl_setopt($ch,CURLOPT_COOKIEFILE,"my_cookies.txt");
if ($isearch_config['proxy_enable'])
{
if ($isearch_config['proxy_user'] != '')
{
curl_setopt($ch,CURLOPT_PROXYUSERPWD,$isearch_config['proxy_user'].':'.$isearch_config['proxy_pass']);
}
curl_setopt($ch,CURLOPT_PROXY,$isearch_config['proxy_host']);
curl_setopt($ch,CURLOPT_PROXYPORT,$isearch_config['proxy_port']);
}
if ($isearch_config['basic_authorization'] != '')
{
curl_setopt($ch,CURLOPT_USERPWD,$isearch_config['basic_authorization']);
}
$allData = curl_exec($ch);
curl_close($ch);
}
@list($headerData,$docData) = explode("

",$allData,2);
$headerLines = explode("
",$headerData);
$status = $headerLines[0];
isearch_spiderLog("INFO: Status Line $status",8);
$header = array();
for ($i = count($headerLines)-1;$i >0;$i--)
{
$data = explode(': ',$headerLines[$i],2);
if (count($data) == 2)
{
$header[strtolower($data[0])] = $data[1];
}
}
$statusParts = explode(' ',$status,3);
if (count($statusParts) <2)
{
isearch_spiderLog('ERROR: Unable to read status code',1);
return '';
}
$statusCode = $statusParts[1];
if (($statusCode == '301') ||($statusCode == '302'))
{
if ($recurse <= 1)
{
isearch_spiderLog('ERROR: URL recursion limit 10 exceeded',1);
return '';
}
$url = $header['location'];
$recurse = $recurse -1;
}
else if ($statusCode >= 300)
{
isearch_spiderLog("WARNING: HTTP Error : $status [$url]",preg_match('#/robots\.txt$#',$url) ?9 : 3);
return '';
}
else
{
break;
}
}
if (isset($header['content-location']))
{
isearch_spiderLog("INFO: Content-Location: ".$header['content-location'],9);
$base = $header['content-location'];
}
else
{
isearch_spiderLog("INFO: Url: ".$url,9);
$base = $url;
}
}
if (preg_match("#<BASE\s+[^>]*?HREF\s*=\s*['\"]?([^>]*?)['\"]?[\s>]#i",$docData,$matches) == 1)
{
isearch_spiderLog("INFO: BASE: ".$matches[1],9);
$base = $matches[1];
}
$regexp = "#<IFRAME[^>]*?\sSRC\s*=\s*['\"]?\s*([^'\"]+?)[\s'\"][^>]*>#i";
$matchCount = preg_match_all($regexp,$docData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
if (strlen($docData) >= $isearch_config['max_file_size'])
{
break;
}
$frameUrl = isearch_relativeToAbsoluteUrl($matches[1][$i],$base);
isearch_spiderLog("INFO: Reading inline frame : $frameUrl",5);
$frameData = isearch_readFile($frameUrl,$depth+1);
$docData = preg_replace($regexp,$frameData,$docData,1);
}
if ($isearch_config['javascript_link_search'] == 2)
{
$regexp = "#<SCRIPT[^>]*?\sSRC\s*=\s*['\"](.*?)['\"][^>]*>#i";
$matchCount = preg_match_all($regexp,$docData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
if (strlen($docData) >= $isearch_config['max_file_size'])
{
break;
}
$jsUrl = isearch_relativeToAbsoluteUrl($matches[1][$i],$base);
isearch_spiderLog("INFO: Reading javascript : $jsUrl",5);
$jsData = isearch_readFile($jsUrl,$depth+1);
$docData = preg_replace($regexp,"<SCRIPT>
<!--
".$jsData."
-->
</SCRIPT>
",$docData,1);
}
}
$isearch_header = $header;
$isearch_base = $base;
return $docData;
}
function isearch_execConvert($data,$type,$url)
{
global $isearch_config;
isearch_spiderLog("INFO: Exec conversion $type",7);
$tmpfname = tempnam($isearch_config['tmpdir'],"iSearch");
$fh = fopen($tmpfname,'wb');
if (!$fh)
{
isearch_spiderLog("ERROR: Unable to open tmp file $tmpfname",1);
return '';
}
fwrite($fh,$data);
fclose($fh);
$cmd = $isearch_config[$type .'_exec'];
if ($cmd == '')
{
isearch_spiderLog("ERROR: Configuration error - executable for $type not set",1);
return '';
}
$pdf = False;
if ($type == 'pdf')
{
$pdf = True;
$cmd .= ' -htmlmeta '.escapeshellarg($tmpfname).' -';
}
else
{
$cmd .= ' '.escapeshellarg($tmpfname);
}
exec($cmd,$output,$retval);
unlink($tmpfname);
if (is_file("$tmpfname.err"))
{
$err = trim(@implode(" ",file("$tmpfname.err")));
unlink("$tmpfname.err");
}
else
{
$err = '';
}
if (is_file("$tmpfname.txt"))
{
$text = @implode("
",file("$tmpfname.txt"));
unlink("$tmpfname.txt");
}
else
{
$text = implode("
",$output);
}
if ($err != '')
{
isearch_spiderLog("ERROR: Executed command $cmd $tmpfname, Error Msg: $err",1);
return '';
}
if ($retval == 0)
{
isearch_spiderLog("INFO: Executed command $cmd $tmpfname, Return Code $retval",5);
}
else
{
isearch_spiderLog("ERROR: Executed command $cmd $tmpfname, Return Code $retval",1);
return '';
}
if ($text == '')
{
isearch_spiderLog("ERROR: Unable to read converted file",2);
return '';
}
if ($type != 'pdf')
{
$fname = preg_replace('#^.*[/\]#','',$url);
$text = "<HTML><HEAD><TITLE>$fname</TITLE></HEAD><BODY><PRE>$text</PRE></BODY></HTML>";
}
return $text;
}
function isearch_onlineConvert($data,$type,$url)
{
global $isearch_config;
global $isearch_version;
$host='convert.iSearchTheNet.com';
$port=80;
$path='/';
$query="?type=$type&gzip=0";
isearch_spiderLog("INFO: Online conversion $type",7);
$sock = fsockopen($host,$port,$errno,$errstr);
if (!$sock)
{
isearch_spiderLog("ERROR: Unable to open socket $host $port - $errno : $errstr",1);
return '';
}
$boundary = '---------------------------'.md5('boundary');
$postValues  = "--$boundary
";
$postValues .= "Content-Disposition: form-data; name=\"file.1\"; filename=\"file.1\"
";
$postValues .= "Content-Type: application/$type
";
$postValues .= "
";
$postValues .= "$data
";
$postValues .= "--$boundary--

";
$request  = "POST http://$host$path$query HTTP/1.0
";
$request .= "User-Agent: iSearch/$isearch_version
";
$request .= "Host: $host
";
$request .= "Authorization: ISEARCH ".$isearch_config['online_id'] ."
";
$request .= "Content-Type: multipart/form-data; boundary=$boundary
";
$request .= "Content-Length: ".strlen( $postValues ) ."
";
$request .= "
";
fputs($sock,$request.$postValues);
$status = fgets($sock,1024);
while (!feof($sock))
{
$line = trim(fgets($sock,1024));
if ($line == '')
{
break;
}
}
$convertedData = isearch_fread($sock);
fclose($sock);
$statusParts = explode(' ',$status,3);
if ($statusParts[1] != '200')
{
isearch_spiderLog("ERROR: Online conversion error: $status",1);
return $data;
}
if ((strlen($convertedData) >10) &&($convertedData[0] == 0x1f) &&($convertedData[1] == 0x8b))
{
isearch_spiderLog("INFO: Running gzinflate on converted data",6);
$convertedData = gzinflate(substr($convertedData,10));
}
$firstWord = '';
sscanf($convertedData,' %s ',$firstWord);
if (!preg_match('#<HTML>#i',$firstWord))
{
$fname = preg_replace('#^.*[/\]#','',$url);
$convertedData = "<HTML><HEAD><TITLE>$fname</TITLE></HEAD><BODY><PRE>$convertedData</PRE></BODY></HTML>";
}
return $convertedData;
}
function isearch_parseHttpDate($httpDate)
{
static $months;
if (!isset($months))
{
$months = array('jan'=>1,'feb'=>2,'mar'=>3,'apr'=>4,'may'=>5,'jun'=>6,'jul'=>7,'aug'=>8,'sep'=>9,'oct'=>10,'nov'=>11,'dec'=>12);
}
$time = 0;
if (preg_match("#^[a-z]+,? +([0-9]{1,2})[ -]+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[ -]+([0-9]{2,4}) +([0-9]{2}):([0-9]{2}):([0-9]{2})#i",$httpDate,$matchName) == 1)
{
$day = $matchName[1];
$monthName = strtolower($matchName[2]);
$year = $matchName[3];
$hour = $matchName[4];
$min = $matchName[5];
$sec = $matchName[6];
}
else if (preg_match("#^[a-z]+,?[ -]+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) +([0-9]{2}):([0-9]{2}):([0-9]{2}) +([0-9]{2,4})#i",$httpDate,$matchName) == 1)
{
$day = $matchName[2];
$monthName = strtolower($matchName[1]);
$year = $matchName[6];
$hour = $matchName[3];
$min = $matchName[4];
$sec = $matchName[5];
}
else
{
isearch_spiderLog('WARNING: Unknown date format : '.$httpDate,7);
}
if (isset($day))
{
if ($year <70)
{
$year += 2000;
}
else if ($year <100)
{
$year += 1900;
}
$time = gmmktime($hour,$min,$sec,$months[$monthName],$day,$year);
}
return $time;
}
function isearch_indexAFile($verbose = True,$followmode = 2,$indexmode = 2)
{
global $isearch_table_info,$isearch_table_urls,$isearch_table_urls_new,$isearch_table_words,$isearch_table_words_new;
global $isearch_db;
global $isearch_config;
global $isearch_header;
global $isearch_base;
if (!$verbose)
{
$isearch_config['log_echo_level'] = 0;
}
$resultUrls = mysql_query("SELECT * FROM $isearch_table_urls_new WHERE state='new' LIMIT 1",$isearch_db);
if (!$resultUrls)
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
sleep(5);
mysql_free_result($resultUrls);
return True;
}
if (mysql_num_rows($resultUrls) != 1)
{
isearch_spiderLog('INFO: Indexing completed.',2);
$now = time();
if (!mysql_query("UPDATE $isearch_table_info SET last_update='$now' WHERE id='1'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
$result = mysql_query("SELECT url, state FROM $isearch_table_urls_new WHERE state!='ok'",$isearch_db);
if (!$result)
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
else if (mysql_num_rows($result) >0)
{
isearch_spiderLog('INFO: Deleting the following URLs:',4);
while ($item = mysql_fetch_object($result))
{
isearch_spiderLog('INFO:  '.$item->url .' ('.$item->state .')',4);
}
mysql_free_result($result);
}
if (!mysql_query("DELETE FROM $isearch_table_urls_new WHERE state!='ok'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
$result = mysql_query("SELECT id, temp_referrer_id FROM $isearch_table_urls_new",$isearch_db);
if (!$result)
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
else if (mysql_num_rows($result) >0)
{
mysql_query("LOCK TABLES $isearch_table_urls_new WRITE",$isearch_db);
while ($item = mysql_fetch_object($result))
{
if (!mysql_query("UPDATE $isearch_table_urls_new SET referrer_id='$item->temp_referrer_id' WHERE id='$item->id'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
}
mysql_query("UNLOCK TABLES",$isearch_db);
mysql_free_result($result);
}
if (!mysql_query("DELETE words.* FROM $isearch_table_words_new words LEFT JOIN $isearch_table_urls_new urls USING (id) WHERE urls.id IS NULL",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("OPTIMIZE TABLE $isearch_table_urls_new, $isearch_table_words_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if ($isearch_config['test_mode'] == 0)
{
$backup_words = $isearch_table_words .'_tmp_backup';
$backup_urls = $isearch_table_urls .'_tmp_backup';
if (!mysql_query("RENAME TABLE $isearch_table_words TO $backup_words, ".
"$isearch_table_words_new TO $isearch_table_words, ".
"$backup_words TO $isearch_table_words_new, ".
"$isearch_table_urls TO $backup_urls, ".
"$isearch_table_urls_new TO $isearch_table_urls, ".
"$backup_urls TO $isearch_table_urls_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
}
if (!mysql_query("DELETE FROM $isearch_table_words_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("DELETE FROM $isearch_table_urls_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("OPTIMIZE TABLE $isearch_table_urls_new, $isearch_table_words_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
mysql_free_result($resultUrls);
return False;
}
$itemUrl = mysql_fetch_object($resultUrls);
mysql_free_result($resultUrls);
$allData = isearch_readFile($itemUrl->url);
$size = strlen($allData);
$newState = 'error';
if ($size == 0)
{
isearch_spiderLog("ERROR: Unable to open URL [$itemUrl->url]",1);
$newState = 'notfound';
}
else
{
$sig = md5($allData);
$resultSig = mysql_query("SELECT id FROM $isearch_table_urls_new WHERE sig='$sig' AND id!='$itemUrl->id'",$isearch_db);
if (!$resultSig)
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
return;
}
if (mysql_num_rows($resultSig) >0)
{
mysql_free_result($resultSig);
isearch_spiderLog("INFO: Duplicate URL - will not be processed [$itemUrl->url]",4);
$newState = 'duplicate';
}
else
{
mysql_free_result($resultSig);
isearch_spiderLog("INFO: Processing URL [$itemUrl->url]",2);
if (($isearch_config['keep_cache']) &&($isearch_config['test_mode'] == 0))
{
$cache = $allData;
}
else
{
$cache = '';
}
$allData = preg_replace("/\s+/",' ',$allData);
if (isset($isearch_header['content_type']) &&($isearch_header['content_type'] == 'text/plain'))
{
$headData = '';
$bodyData = $allData;
}
else
{
$tdata = preg_split('#</head[^>]*>#i',$allData,2);
if (count($tdata) <2)
{
$tdata = preg_split('#<body#i',$allData,2);
if (count($tdata) <2)
{
isearch_spiderLog('WARNING: <BODY> and </HEAD> tags not found',4);
$headData = '';
$bodyData = $allData;
}
else
{
$headData = $tdata[0];
$bodyData = '<body'.$tdata[1];
}
}
else
{
$headData = $tdata[0];
$bodyData = $tdata[1];
}
}
$headData = preg_replace('/<!--.+?-->/','',$headData);
$headData = preg_replace("/\s+/",' ',$headData);
$headData = strip_tags(preg_replace("#<\!DOCTYPE [^>]*>#i",'',$headData),'<meta><title><base>');
$keyWords = '';
$description = '';
$title = '';
$index = ($indexmode == 0) ?False : True;
$follow = ($followmode == 0) ?False : True;
$changefreq = '';
$priority = -1;
$matchCount = preg_match_all("#<META\s+([^>]*?)\s*/?\s*>#i",$allData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
if (preg_match("#CONTENT\s*=\s*(['\"])(.*?)#i",$matches[1][$i],$matchContent) == 1)
{
$metaContent = $matchContent[2];
if (preg_match("#NAME\s*=\s*['\"]?(.*?)['\"]?(\s|$)#i",$matches[1][$i],$matchName) == 1)
{
$metaName = strtolower($matchName[1]);
if ($metaName == 'keywords')
{
$keyWords = str_replace(',',' ',$metaContent);
}
else if ($metaName == 'description')
{
$description = $metaContent;
}
else if ($metaName == 'robots')
{
if ((preg_match('#noindex#i',$metaContent)) &&($indexmode == 2))
{
isearch_spiderLog("INFO: robots noindex meta tag found.",7);
$index = False;
}
if ((preg_match('#nofollow#i',$metaContent)) &&($followmode == 2))
{
isearch_spiderLog("INFO: robots nofollow meta tag found.",7);
$follow = False;
}
if (preg_match('#noarchive#i',$metaContent))
{
isearch_spiderLog("INFO: robots nocache meta tag found.",7);
$cache = '';
}
}
else if ($metaName == 'revisit-after')
{
$revisitAfterDays = intval(preg_replace('#\s.*$#','',$metaContent));
isearch_spiderLog("INFO: revisit-after meta tag found ($revisitAfterDays days).",7);
if ($revisitAfterDays <= 0)
{
}
else if ($revisitAfterDays <= 3)
{
$changefreq = 'daily';
}
else if ($revisitAfterDays <= 15)
{
$changefreq = 'weekly';
}
else if ($revisitAfterDays <= 180)
{
$changefreq = 'monthly';
}
else if ($revisitAfterDays <= 999)
{
$changefreq = 'yearly';
}
else
{
$changefreq = 'never';
}
}
else if ($metaName == 'sitemap-changefreq')
{
isearch_spiderLog("INFO: sitemap-changefreq meta tag found ($metaContent).",7);
$changefreq = $metaContent;
}
else if ($metaName == 'sitemap-priority')
{
isearch_spiderLog("INFO: sitemap-priority meta tag found ($metaContent).",7);
$priority = floatval($metaContent);
}
}
else if (preg_match("#HTTP-EQUIV\s*=(['\"])(.*?)#i",$matches[1][$i],$matchEquiv) == 1)
{
$isearch_header[strtolower($matchEquiv[2])] = $metaContent;
}
}
}
$charset = strtolower($isearch_config['char_set']);
if ((isset($isearch_header['content-type'])) &&
(preg_match("#(^|\s)\s*CHARSET\s*=\s*['\"]?(.*?)['\"]?(\s|$)#i",$isearch_header['content-type'],$matches) == 1))
{
$charset = strtolower($matches[2]);
}
if ($charset == '')
{
$charset = 'utf-8';
}
$lastModified = 0;
if (isset($isearch_header['last-modified']))
{
$lastModified = isearch_parseHttpDate($isearch_header['last-modified']);
}
if ($follow)
{
$tdata1 = preg_split('#(<!-- ISEARCH_BEGIN_FOLLOW -->|</nofollow>)#i',' '.$bodyData);
if (count($tdata1) >1)
{
$followData = '';
$tdata2 = preg_split('#(<!-- ISEARCH_END_FOLLOW -->|<nofollow>)#i',$tdata1[0]);
if (count($tdata2) >1)
{
$followData .= $tdata2[0];
}
for ($i = 1;$i <count($tdata1);$i++)
{
$tdata2 = preg_split('#(<!-- ISEARCH_END_FOLLOW -->|<nofollow>)#i',$tdata1[$i]);
$followData .= $tdata2[0];
}
}
else
{
$followData = $bodyData;
}
$urls = array();
if ($isearch_config['follow_meta_refresh'] &&isset($isearch_header['refresh']) &&
(preg_match("#; *URL *= *(.*)$#i",$isearch_header['refresh'],$matches) == 1))
{
$urls[] = $matches[1];
}
if ($isearch_config['aggressive_link_search'])
{
$matchCount = preg_match_all("~(https?|ftps?)://[^'\"\s>]*~i",$allData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
$urls[] = $matches[0][$i];
}
$matchCount = preg_match_all("~<(A|AREA)\s+([^>]*?\s+)*?HREF\s*=\s*([^\s>]*?)~i",$followData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
$urls[] = $matches[3][$i];
}
}
if ($isearch_config['javascript_link_search'])
{
$matchCount = preg_match_all("~window.open\s*\(\s*'(.+?)',~i",$allData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
if ($matches[1][$i] != '')
{
$urls[] = $matches[1][$i];
}
}
$matchCount = preg_match_all("~window.open\s*\(\s*\"(.+?)\",~i",$allData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
if ($matches[1][$i] != '')
{
$urls[] = $matches[1][$i];
}
}
}
$followData = preg_replace('#(<SCRIPT[^>]*?>.*?</SCRIPT>)|(<!--.*?-->)#i','',$followData);
$matchCount = preg_match_all("~<(A|AREA)\s+([^>]*?\s+)*?HREF\s*=\s*\"\s*([^>]*?)\s*\"[^>]*>~i",$followData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
if (!preg_match('#rel="nofollow"#i',$matches[0][$i]))
{
$urls[] = $matches[3][$i];
}
}
$matchCount = preg_match_all("~<(A|AREA)\s+([^>]*?\s+)*?HREF\s*=\s*'\s*([^>]*?)\s*'[^>]*>~i",$followData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
if (!preg_match('#rel="nofollow"#i',$matches[0][$i]))
{
$urls[] = $matches[3][$i];
}
}
if ($isearch_config['follow_frames'])
{
$matchCount = preg_match_all("~<FRAME\s+(.*?)>~i",$allData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
$matchCount2 = preg_match_all("~SRC\s*=\s*\"\s*([^>]+?)\s*\"~i",$matches[1][$i],$matches2);
for ($j = 0;$j <$matchCount2;$j++)
{
$urls[] = $matches2[1][$j];
}
}
}
$lastUrl = '';
sort($urls);
foreach ($urls as $url)
{
if ($url != '')
{
$decodedUrl = str_replace(' ','%20',preg_replace('/#.*$/','',isearch_html_entity_decode(trim($url),ENT_QUOTES,$charset)));
if (($decodedUrl != $lastUrl) &&(!preg_match('#^javascript:#i',$decodedUrl)))
{
isearch_addUrl(isearch_relativeToAbsoluteUrl($decodedUrl,$isearch_base),$itemUrl->id);
$lastUrl = $decodedUrl;
}
}
}
}
if ($isearch_config['test_mode'] == 1)
{
$newState = 'ok';
}
else if ($index)
{
if (preg_match("#<TITLE>\s*(.*?)\s*</TITLE>#i",$headData,$matches) == 1)
{
$title = $matches[1];
}
else
{
$title = $itemUrl->url;
}
$bodyData = preg_replace('#(<(hr|br|p|td|th|li)(>| [^>]*>))|(&(nb|em|en)sp;?)#i',' ',$bodyData);
$bodyData = preg_replace('#(</?h[1-9]>)#i',' ',$bodyData);
$bodyData = preg_replace('#&([nm]dash|shy);?#i','-',$bodyData);
$bodyData = preg_replace('#&[lrb]squo;?#i',"'",$bodyData);
$bodyData = preg_replace('#&[lrb]dquo;?#i','"',$bodyData);
$tdata1 = preg_split('#(<!-- ISEARCH_BEGIN_INDEX -->|</noindex>)#i',' '.$bodyData);
if (count($tdata1) >1)
{
$bodyData = '';
$tdata2 = preg_split('#(<!-- ISEARCH_END_INDEX -->|<noindex>)#i',$tdata1[0],2);
if (count($tdata2) >1)
{
$bodyData .= $tdata2[0];
}
for ($i = 1;$i <count($tdata1);$i++)
{
$tdata2 = preg_split('#(<!-- ISEARCH_END_INDEX -->|<noindex>)#i',$tdata1[$i],2);
$bodyData .= $tdata2[0];
}
}
else
{
$tdata2 = preg_split('#(<!-- ISEARCH_END_INDEX -->|<noindex>)#i',$tdata1[0],2);
if (count($tdata2) >1)
{
$bodyData = $tdata2[0];
}
}
$bodyData = preg_replace('#(<SCRIPT[^>]*?>.*?</SCRIPT>)|(<!--.*?-->)|(<STYLE[^>]*?>.*?</STYLE>)#i','',$bodyData);
$bodyData = strip_tags($bodyData,'<h1><h2><h3><h4><h5><img>');
if (!$isearch_config['ignore_image_alt_tags'])
{
$bodyData = preg_replace('#<IMG\s[^>]*?ALT\s*=\s*("|\')(.*?).*?>#i','  ',$bodyData);
}
$bigWords = '';
$matchCount = preg_match_all("~<H[1-5]>\s*(.*?)\s*</H[1-5]>~i",$bodyData,$matches);
for ($i = 0;$i <$matchCount;$i++)
{
$bigWords .= ' '.$matches[1][$i];
}
$bodyData = strip_tags($bodyData);
$bodyData = isearch_html_entity_decode($bodyData,ENT_QUOTES,$charset);
$bigWords = isearch_html_entity_decode($bigWords,ENT_QUOTES,$charset);
$keyWords = isearch_html_entity_decode($keyWords,ENT_QUOTES,$charset);
$titleWords = isearch_html_entity_decode($title,ENT_QUOTES,$charset);
$strippedBody = preg_replace("/\s+/",' ',$bodyData);
$bodyData = isearch_cleanSpiderString($bodyData);
$bigWords = isearch_cleanSpiderString($bigWords);
$keyWords = isearch_cleanSpiderString($keyWords);
$titleWords = isearch_cleanSpiderString($titleWords);
$urlWords = preg_replace('#((https?://)|[+/\\.]|(%20))#i',' ',$itemUrl->url);
$urlWords = isearch_cleanSpiderString($urlWords);
if ($charset != 'utf-8')
{
$bodyData = isearch_convCharset($bodyData,$charset);
$bigWords = isearch_convCharset($bigWords,$charset);
$keyWords = isearch_convCharset($keyWords,$charset);
$titleWords = isearch_convCharset($titleWords,$charset);
$urlWords = isearch_convCharset($urlWords,$charset);
$strippedBody = isearch_convCharset($strippedBody,$charset);
}
$description = isearch_convCharset($description,$charset);
$score = array();
for ($i = 0;$i <5;$i++)
{
if ($i == 0)
{
$words = explode(' ',$bodyData);
$wordScore = $isearch_config['word_rank'];
}
else if ($i == 1)
{
$words = explode(' ',$bigWords);
$wordScore = $isearch_config['heading_rank'];
}
else if ($i == 2)
{
$words = explode(' ',$keyWords);
$wordScore = $isearch_config['keyword_rank'];
}
else if ($i == 3)
{
$words = explode(' ',$titleWords);
$wordScore = $isearch_config['title_rank'];
}
else if ($i == 4)
{
$words = explode(' ',$urlWords);
$wordScore = $isearch_config['url_rank'];
}
if ($wordScore == 0)
{
continue;
}
foreach ($words as $word)
{
if (($word != '') &&(!in_array($word,$isearch_config['stop_words'])) &&(strlen($word) >$isearch_config['stop_words_length']))
{
if (isset($score[$word]))
{
$score[$word] += $wordScore;
}
else
{
$score[$word] = $wordScore;
}
}
}
}
if (count($score) == 0)
{
isearch_spiderLog('WARNING: No words were found',4);
}
else
{
$id = $itemUrl->id;
$count = 0;
foreach ($score as $word =>$val)
{
if ($count == 0)
{
$query = "INSERT INTO $isearch_table_words_new (word, id, score) VALUES ";
$needComma = False;
}
else if ($count == 1000)
{
if (!mysql_query($query,$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
$count = 0;
$query = "INSERT INTO $isearch_table_words_new (word, id, score) VALUES ";
$needComma = False;
}
if ($needComma)
{
$query .= ',';
}
$needComma = True;
$query .= "('".isearch_escape_string($word)."', '$id', '$val')";
$count ++;
}
if ($count >0)
{
if (!mysql_query($query,$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
}
}
if (!mysql_query("UPDATE $isearch_table_urls_new SET ".
"title='".isearch_escape_string($title) ."', ".
"description='".isearch_escape_string($description) ."', ".
"size='$size', ".
"base='".isearch_escape_string($isearch_base) ."', ".
"priority='$priority', ".
"changefreq='".isearch_escape_string($changefreq) ."', ".
"lastmod='$lastModified', ".
"sig='".isearch_escape_string($sig) ."' ".
"WHERE id='".$itemUrl->id ."'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("UPDATE $isearch_table_urls_new SET ".
"cache='".isearch_escape_string($cache) ."' ".
"WHERE id='".$itemUrl->id ."'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("UPDATE $isearch_table_urls_new SET ".
"stripped_body='".isearch_escape_string($strippedBody) ."' ".
"WHERE id='".$itemUrl->id ."'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("UPDATE $isearch_table_urls_new SET ".
"words=' ".isearch_escape_string($bodyData) ." ' ".
"WHERE id='".$itemUrl->id ."'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
$newState = 'ok';
}
else    
{
$newState = 'noindex';
}
}
}
if (!mysql_query("UPDATE $isearch_table_urls_new SET state='$newState' WHERE id='".$itemUrl->id ."'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
return True;
}
function glue_url($parsed)
{
if (!is_array($parsed))
{
return false;
}
if (isset($parsed['scheme']))
{
$sep = (strtolower($parsed['scheme']) == 'mailto'?':': '://');
$uri = $parsed['scheme'] .$sep;
}
else
{
$uri = '';
}
if (isset($parsed['pass']))
{
$uri .= "$parsed[user]:$parsed[pass]@";
}
elseif (isset($parsed['user']))
{
$uri .= "$parsed[user]@";
}
if (isset($parsed['host']))
{
$uri .= $parsed['host'];
}
if (isset($parsed['port']))
{
$uri .= ":$parsed[port]";
}
if (isset($parsed['path']))
{
$uri .= $parsed['path'];
}
if (isset($parsed['query']))
{
$uri .= "?$parsed[query]";
}
if (isset($parsed['fragment']))
{
$uri .= "#$parsed[fragment]";
}
return $uri;
}
function isearch_addUrl($absoluteUrl,$referrer_id)
{
global $isearch_table_urls_new;
global $isearch_db;
global $isearch_config;
$referrer_id = intval($referrer_id);
if (preg_match('#^mailto:#i',$absoluteUrl))
{
isearch_spiderLog("INFO:  Ignoring URL [$absoluteUrl]",6);
return;
}
isearch_spiderLog("INFO:  Checking URL [$absoluteUrl]",7);
$absoluteParts = @parse_url($absoluteUrl);
if ((!isset($absoluteParts['scheme'])) ||(!isset($absoluteParts['host'])))
{
isearch_spiderLog("INFO:    Unable to parse absoluteUrl [$absoluteUrl]",4);
return;
}
$absoluteParts['scheme'] = strtolower($absoluteParts['scheme']);
if (!preg_match('#^(https?|ftps?)$#i',$absoluteParts['scheme']))
{
isearch_spiderLog("INFO:    Rejecting unsupported URL format [$absoluteUrl]",6);
return;
}
unset($absoluteParts['fragment']);
if ((count($isearch_config['remove_get_vars']) == 1) &&($isearch_config['remove_get_vars'][0] == '*'))
{
unset($absoluteParts['query']);
}
else if (isset($absoluteParts['query']))
{
$queryParts = explode('&',$absoluteParts['query']);
foreach (array_keys($queryParts) as $key)
{
$varName = preg_replace('#=.*$#','',$queryParts[$key]);
if (in_array($varName,$isearch_config['remove_get_vars']))
{
unset($queryParts[$key]);
}
}
$absoluteParts['query'] = implode('&',$queryParts);
if ($absoluteParts['query'] == '')
{
unset($absoluteParts['query']);
}
}
if ($isearch_config['www_option'] == 2)
{
$absoluteParts['host'] = preg_replace('#^www\.#i','',$absoluteParts['host']);
}
else if ($isearch_config['www_option'] == 3)
{
if (!preg_match('#^www\.#i',$absoluteParts['host']))
{
$absoluteParts['host'] = 'www.'.$absoluteParts['host'];
}
}
if (isset($absoluteParts['path']))
{
$absoluteParts['path'] = str_replace(' ','%20',$absoluteParts['path']);
}
$absoluteUrl = glue_url($absoluteParts);
if (isset($absoluteParts['path']))
{
$fileName = preg_replace('#.*/#','',$absoluteParts['path']);
$temp = explode('.',$fileName);
if (count($temp) <2)
{
$fileExtension = '';
}
else
{
$fileExtension = strtolower($temp[count($temp)-1]);
}
}
else
{
$fileExtension = '';
$fileName = '/';
}
isearch_spiderLog("INFO:    Absolute URL [$absoluteUrl]",6);
$allowed = False;
if ($fileExtension == '')
{
if ($isearch_config['directory_handling'] != 0)
{
$allowed = True;
if ($isearch_config['directory_handling'] == 2)
{
$absoluteUrl = preg_replace('#([^/])$#','/',$absoluteUrl);
}
else if ($isearch_config['directory_handling'] == 3)
{
$absoluteUrl = preg_replace('#/$#','',$absoluteUrl);
}
}
}
else
{
foreach ($isearch_config['strip_defaults'] as $item)
{
if (($item != '') &&($item == $fileName))
{
$absoluteUrl = preg_replace('#[^/]+$#','',$absoluteUrl);
$allowed = True;
break;
}
}
if ((in_array($fileExtension,$isearch_config['allowed_ext'])) ||
(($isearch_config['pdf_support'] != 0) &&($fileExtension == 'pdf')) ||
(($isearch_config['msword_support'] != 0) &&($fileExtension == 'doc')))
{
$allowed = True;
}
}
if (!$allowed)
{
isearch_spiderLog("INFO:    Rejecting URL - it is not in allowed file extensions [$absoluteUrl]",5);
}
else
{
$result = mysql_query("SELECT state, id FROM $isearch_table_urls_new WHERE url='".isearch_escape_string($absoluteUrl)."'",$isearch_db);
if (!$result)
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
return;
}
if (mysql_num_rows($result) >0)
{
isearch_spiderLog("INFO:    URL allowed, but already in database [$absoluteUrl]",6);
if ($item = mysql_fetch_object($result))
{
if (($item->state == 'new') &&($item->id != $referrer_id))
{
if (!mysql_query("UPDATE $isearch_table_urls_new SET temp_referrer_id='$referrer_id' WHERE url='".isearch_escape_string($absoluteUrl)."'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
}
}
mysql_free_result($result);
return;
}
mysql_free_result($result);
$allowed = False;
foreach (isearch_expandList($isearch_config['allowed_urls_beginning']) as $item)
{
if (($item != '') &&($item == substr($absoluteUrl,0,strlen($item))))
{
isearch_spiderLog("INFO:    URL matches Allow URLs Starting $item [$absoluteUrl]",8);
$allowed = True;
break;
}
}
foreach (isearch_expandList($isearch_config['allowed_urls']) as $item)
{
if (($item != '') &&(preg_match('#'.$item.'#',$absoluteUrl)))
{
isearch_spiderLog("INFO:    URL matches Allow URLs Regexp $item [$absoluteUrl]",8);
$allowed = True;
break;
}
}
if (!$allowed)
{
isearch_spiderLog("INFO:    Rejecting URL - it  is not in allowed URL list [$absoluteUrl]",5);
}
else
{
if (($absoluteParts['scheme'] == 'http') &&(!in_array($absoluteParts['host'],$isearch_config['robots_domains'])))
{
$host = $absoluteParts['host'];
if (isset($absoluteParts['port']))
{
$host .= ':'.$absoluteParts['port'];
}
isearch_parseRobots($host);
}
foreach (isearch_expandList($isearch_config['exclude_urls_beginning']) as $item)
{
if (($item != '') &&($item == substr($absoluteUrl,0,strlen($item))))
{
$allowed = False;
isearch_spiderLog("INFO:    Rejecting URL - it is in disallowed URL beginning list [$absoluteUrl]",5);
break;
}
}
if ($allowed)
{
foreach (isearch_expandList($isearch_config['exclude_urls']) as $item)
{
if (($item != '') &&(preg_match('#'.str_replace('#','\#',$item).'#i',$absoluteUrl)))
{
$allowed = False;
isearch_spiderLog("INFO:    Rejecting URL - it is in disallowed URL regexp list [$absoluteUrl]",5);
break;
}
}
}
if ($allowed)
{
foreach ($isearch_config['robots_excludes'] as $item)
{
if (($item != '') &&(preg_match('#'.str_replace('#','\#',$item).'#i',$absoluteUrl)))
{
$allowed = False;
isearch_spiderLog("INFO:    Rejecting URL - it is disallowed by robots.txt [$absoluteUrl]",5);
break;
}
}
}
}
}
if ($allowed)
{
if (!mysql_query("INSERT INTO $isearch_table_urls_new (url, temp_referrer_id, state) VALUES ('".isearch_escape_string($absoluteUrl)."', '$referrer_id', 'new')",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
isearch_spiderLog("INFO:    URL allowed, and added [$absoluteUrl]",4);
}
}
function isearch_expandList($list,$depth=0)
{
$items = array();
if ($depth >20)
{
isearch_spiderLog('ERROR: Too much recursion in isearch_expandUrlList',1);
return $items;
}
foreach ($list as $item)
{
if ($item{0}== '@')
{
$lines = @file(substr($item,1));
if (is_array($lines))
{
$newList = array();
foreach ($lines as $line)
{
$newList[] = trim($line);
}
$items = array_merge($items,isearch_expandList($newList,$depth +1));
}
else
{
isearch_spiderLog('WARNING: unable to read file : '.substr($item,1));
}
}
else
{
$items[] = $item;
}
}
return $items;
}
function isearch_reset()
{
global $isearch_table_urls_new,$isearch_table_info,$isearch_table_words_new;
global $isearch_db;
global $isearch_config;
isearch_clearSpiderLog();
isearch_spiderLog('INFO: Starting spidering '.date('dS F Y h:i:s A'),3);
if (!mysql_query("DELETE FROM $isearch_table_urls_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("DELETE FROM $isearch_table_words_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
$urls = isearch_expandList($isearch_config['start_urls']);
foreach ($urls as $url)
{
$urlParts = @parse_url($url);
if ((!isset($urlParts['scheme'])) ||(!isset($urlParts['host'])))
{
isearch_spiderLog("ERROR: Unable to parse start URL [$url]",1);
}
else
{
$filePath = isset($urlParts['path']) ?$urlParts['path'] : '';
$fileName = preg_replace('#.*/#','',$filePath);
$temp = explode('.',$fileName);
if (count($temp) <2)
{
$fileExtension = '';
}
else
{
$fileExtension = $temp[count($temp)-1];
}
if ($fileExtension == '')
{
if ($isearch_config['directory_handling'] == 2)
{
$url = preg_replace('#([^/])$#','/',$url);
}
else if ($isearch_config['directory_handling'] == 3)
{
$url = preg_replace('#/$#','',$url);
}
}
if (!mysql_query("INSERT INTO $isearch_table_urls_new (url, temp_referrer_id, state) VALUES ('".isearch_escape_string($url)."', '-1', 'new')",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
isearch_spiderLog("INFO: Added start URL [$url]",5);
}
}
$isearch_config['robots_domains'] = array();
$isearch_config['robots_excludes'] = array();
if (!mysql_query("UPDATE $isearch_table_info SET robots_domains='', robots_excludes='' WHERE id='1'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("UPDATE $isearch_table_info SET last_update='0' WHERE id='1'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
}
function isearch_getUrlCount($new = False,$state = '')
{
global $isearch_table_urls,$isearch_table_urls_new;
global $isearch_db;
$count = 0;
$query = 'SELECT COUNT(*) FROM '.($new ?$isearch_table_urls_new : $isearch_table_urls);
if ($state != '')
{
$query .= " WHERE state='$state'";
}
$result = mysql_query($query,$isearch_db);
if (!$result)
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
else
{
$count = mysql_result($result,0,0);
}
mysql_free_result($result);
return $count;
}
function isearch_copyUrlTables($toNew = False)
{
global $isearch_table_urls,$isearch_table_urls_new;
global $isearch_table_words,$isearch_table_words_new;
global $isearch_db;
if ($toNew)
{
mysql_query("LOCK TABLES $isearch_table_urls_new WRITE, $isearch_table_words_new WRITE,  $isearch_table_urls READ, $isearch_table_words READ",$isearch_db);
if (!mysql_query("DELETE FROM $isearch_table_urls_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("DELETE FROM $isearch_table_words_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("INSERT INTO $isearch_table_urls_new SELECT * FROM $isearch_table_urls",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("INSERT INTO $isearch_table_words_new SELECT * FROM $isearch_table_words",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
}
else
{
mysql_query("LOCK TABLES $isearch_table_urls WRITE, $isearch_table_words WRITE,  $isearch_table_urls_new READ, $isearch_table_words_new READ",$isearch_db);
if (!mysql_query("DELETE FROM $isearch_table_urls",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("DELETE FROM $isearch_table_words",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("INSERT INTO $isearch_table_urls SELECT * FROM $isearch_table_urls_new WHERE state='ok'",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
if (!mysql_query("INSERT INTO $isearch_table_words SELECT * FROM $isearch_table_words_new",$isearch_db))
{
isearch_spiderLog('ERROR: MySQL error : '.mysql_error() ." in ".'index.php' ." line ".__LINE__,1);
}
}
mysql_query("UNLOCK TABLES",$isearch_db);
}
$isearch_url_fopen_detected = (bool) ini_get('allow_url_fopen');
$isearch_curl_detected = (function_exists('curl_init')) ?True : False;
$isearch_sockets_detected = (function_exists('fsockopen')) ?True : False;

Did this file decode correctly?

Original Code

<?php /* This file is protected by copyright law and provided under license. Reverse engineering of this file is strictly prohibited. */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0xf890;eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NGZhKTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCd3aWJsZUVMQklXQWFDY0RkRmZHZ0hoSmpLa01tTm5Pb1BwUXFSclNzVHRVdVZ2WHhZeVp6MDEyMzQ1Njc4OSsvPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));return;?>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|tESXhNKuE`Y

Function Calls

fopen 1
fread 3
strtr 2
fclose 1
urldecode 1
str_replace 1
base64_decode 3

Variables

$O000O0O00 True
$O0O000O00 fgets
$O0O000O0O fgetc
$O0O00OO00 fread
$OO00O0000 63632
$OO00O00O0 if ( !defined('IN_ISEARCH') ) { die('Hacking attempt'); } f..
$OOO000000 fg6sbehpra4co_tnd
$OOO00000O strtr
$OOO0000O0 base64_decode
$OOO000O00 fopen
$OOO0O0O00 index.php

Stats

MD5 b0630980ad015f9b5ac34c5b0abda603
Eval Count 3
Decode Time 190 ms