ИМХО - есть замечательная функция file
через нее сделайте :)
она построчно выдирает файл в массив
после этого выдирайте значение типа $rand[rand(4,54)]
$arr = file('file.txt'); echo $arr[rand(4,10)];
просто - но работает :)
ИМХО - лучше через PHP в логи не лезть - иначе потрут все при взломе
а очищать - вроде в апач входит rotatelogs - можно его заюзать
правда с непривычки очень сложно в названиях логов разобраться
можно здесь посмотреть
там все описано - только по заграничному :(
ИМХО через сокеты в данном случае лучше всего - максимально можно управлять запросом на соединение (да curl не везде стоит ☝ )
после fclose() ставите
if(!preg_match_all('/<title>(.*)<\/title>/isU',$out,$tag)) {
exit('заголовок не найден');
} else {
print_r($tag);
}
небольшие пояснения:
выдирает заголовок из всего текста :) можно и preg_match
/iU чтобы регистронезависимый + квантификаторы не жадничали ;)
$tag через print_r - чтобы было понятно какую часть массива ловить на выходе
вообщем-то все
if(!$_GET && !array_key_exists('url',$_GET)) { echo 'введите url вида ?url=http://www.yandex.ru/'; } else { $url = parse_url($_GET['url']); if(!@$url['host']) exit('неправильный url'); if(!@$url['path']) $url['path'] = '/'; $sok = @fsockopen($url['host'], 80, $errno, $errstr, 30); if(!$sok) { exit('ошибка сокета'); } else { $head = "GET ".$url['path']." HTTP/1.1\r\n"; $head .= "Host: ".$url['host']."\r\n"; $head .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7\r\n"; $head .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; $head .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n"; $head .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n"; $head .= "Connection: Close\r\n\r\n"; fwrite($sok, $head); $out = ''; while(!feof($sok)) { $out .= fgets($sok,128); } fclose($sok); echo $out; } }
вот на скорую руку - парсить соответственно $out на <title>
если какие ошибки - не обессудьте :) ща дотестирую - но код рабочий
нужен готовый код или сама идея реализации ?
Gecko это движек который используется FireFox, но и он не один - как пример:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3
Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7.5) Gecko/20050105 Epiphany/1.4.8
Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413
и как показывает практика - в U-A можно запихнуть вообще все, что угодно.
Так что если хотите знать, человек ли это - то смотрите все логи с интересующим U-A и исходя из переходов поймете, бот или человек
process &
можно еще man bash (или какой шелл) - там в системных командах оболочки
управлять через fg bg jobs
и еще важный момент забыл :)
обязательно перенаправляйте вывод stdout и stderr куда нибудь, чтобы знать - что выдает процессю Например, чтобы ошибки ловить - можно так
process 2>/tmp/process &
удалено за ненадобностью