Sexycat
Guest
Скрипт останавливается пряма по середине выполнения функции print
Я пишу индексатор, в теории он проходит по всем найденным ссылкам начиная от указанного адреса.. но на самом деле он зачем-то останавливается по не понятным мне причинам...
хотя вроде на одном и том же мете... пряма вот так например::
215 Ссылка добавленна: http://localhost/~php/f/zip-entry-name.html
216 Ссылка добавленна: http://localhost/~php/f/zip-entry-filesize.html
217 Ссылка добавленна: http://local
215 Ссылка добавленна: http://localhost/~php/f/zip-entry-name.html
Я пишу индексатор, в теории он проходит по всем найденным ссылкам начиная от указанного адреса.. но на самом деле он зачем-то останавливается по не понятным мне причинам...
хотя вроде на одном и том же мете... пряма вот так например::
215 Ссылка добавленна: http://localhost/~php/f/zip-entry-name.html
216 Ссылка добавленна: http://localhost/~php/f/zip-entry-filesize.html
217 Ссылка добавленна: http://local
PHP:
<?
require 'DB.php';
$db = DB::connect('mysql://root:.....@localhost/eboard_v03beta',FALSE);
$db -> setFetchMode(DB_FETCHMODE_ASSOC);
$GLOBALS['myURLs'] = array();
ini_set('max_execution_time',0);
ini_set('output_buffering',0);
ini_set('error_reporting',E_ALL);
ini_set('memory_limit',0);
$GLOBALS['iiE']=0;
$GLOBALS['iiEi']=0;
$GLOBALS['iiEo']=0;
$GLOBALS['iiEe']=0;
$GLOBALS['iiEw']=0;
function indexIT($URL) {
print $GLOBALS['iiE']++." ";
global $db;
$URL = freack_url($URL);
if (!isset($GLOBALS['iIndexItSite'])) {
if (!eregi('^[url]http://.*/[/url]$',$URL)) { die("<br>Bad adres: <b>$URL</b><br>example: <i>[url]http://www.my.site.com/[/url]</i>"); }
$GLOBALS['iIndexItSite'] = $URL;
}
$GET = load_url($URL);
$GLOBALS['iiEe']++;
if (is_array($GET)) {
if (!empty($GET['KEYWORDS'])) {
$GLOBALS['iiEi']++;
$se1 = "Ссылка обновлена: {$GET['URL']}\n";
$se2 = "Ссылка добавленна: {$GET['URL']}\n";
if ($GET['DO'] == 'UPDATE') { $db -> autoExecute ('search_sites', array('URL'=>$GET['URL'], 'KEYWORDS'=>$GET['KEYWORDS'],'LM'=>$GET['LM']), DB_AUTOQUERY_UPDATE, "URL='{$GET['URL']}'"); }
else { print $se2; $db -> autoExecute ('search_sites', array('URL'=>$GET['URL'], 'KEYWORDS'=>$GET['KEYWORDS'],'LM'=>$GET['LM']), DB_AUTOQUERY_INSERT); }
foreach ($GET['LINKS'] as $v) { $cool_adres=''; $cool_adres=index_test($v,$URL); if ($cool_adres != false) { indexIT($cool_adres); }}
} else { print "<i>Файл пуст</i>\n"; }
} else { print "Кривая ссылка: {$URL}\n"; }
}
function load_url($URL) {
$index = @fopen($URL,"rb");
$content = NULL;
if (!ereg('200',$http_response_header[0])) { return false; }
foreach ($http_response_header as $v) {
if (eregi('^Last-Modified:',$v)) { $LM = $v; }
if (eregi('^Content-Type:',$v)) { $CT = $v; }
}
$ITM = index_exists($URL);
while (!feof ($index)) { $content .= fgets($index, 4096); }
foreach (explode(' ',$CT) as $v) { if (eregi('^charset=',$v)) { strtok($v,'='); $CHARSET = strtok('='); } else { $CHARSET = ''; }}
preg_match_all ("/<(?:a |frame )(.*)>/iU", $content, $href, PREG_PATTERN_ORDER);
$LINKS = $href[1];
$KEYWORDS = preg_replace('/<(|\/)[^>]*?>|&(.*|\S);/','', $content);
fclose($index);
if ($ITM === false) { $ITM = 'INSERT'; } else { $ITM = 'UPDATE'; }
return array('URL'=>$URL,'CHARSET'=> $CHARSET, 'LM'=>$LM, 'LINKS'=>$LINKS, 'KEYWORDS'=>$KEYWORDS, 'DO'=>$ITM);
}
function index_test($HREF,$gURL) {
preg_match('/(?:href|src)=(\'|")(.*)(\'|")/iU',$HREF,$URL);
if (isset($URL[2])) { $URL = $URL[2]; } else { print "Не найдена ссылка\n"; return false; }
if (!in_array($URL,$GLOBALS['myURLs'])) { $GLOBALS['myURLs'][] = $URL; } else { print "Ссылка повторяется\n"; $GLOBALS['iiEw']++;return false; }
if (eregi('^[url]http://[/url]',$URL)) {
if (eregi("^{$GLOBALS['iIndexItSite']}",$URL)) { return $URL; } else { print "Ссылка на другой сервер\n"; return false; }
}
if (!isset($URL)) { print "Ссылка пуста\n"; return false; }
if ($URL == '') { print "Ссылка пуста [1]\n"; return false; }
$gURL = parse_url($gURL);
if (!ereg('/$',$gURL['path'])) { $gURL['path'] = trim_file($gURL['path']); $gURL = "{$gURL['scheme']}://{$gURL['host']}{$gURL['path']}"; }
else { $gURL = "{$gURL['scheme']}://{$gURL['host']}{$gURL['path']}"; }
return $gURL.$URL;
}
function freack_url($URL) { return preg_replace('/\w+\/\.\.\/|\.\//U','',$URL); }
function index_exists($URL) {
global $db;
$result = $db -> getOne("select LM from search_sites where URL='$URL'");
if (!empty($result)) { return $result; }
return false;
}
function trim_file($path) {
$P = explode('/',$path);
unset($P[count($P)-1]);
return implode('/',$P).'/';
}
indexIT('http://localhost/~php/');
print "\n-----------\n\n\nПовторений: ".$GLOBALS['iiEw'];
print "\nСсылок просмотренно всего: ".$GLOBALS['iiEe'];
print "\nСсылок просмотренно: ".$GLOBALS['iiEi'];
print "\nСсылок обновлено: ".$GLOBALS['iiEo'];
?>