bonzaza

bonzaza
Рейтинг
82
Регистрация
10.06.2006
Должность
фриланс
Интересы
разработка
жизнелюб в третьем поколении

ИМХО - есть замечательная функция 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 &
и смотреть что в /tmp/process валится

удалено за ненадобностью

Всего: 338