Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Открытие страницы скриптом для индексации

7.1K
15 декабря 2005 года
ASL
34 / / 16.08.2005
Такая проблема: написанный мною скрипт индексации страниц моего сайта (последовательно обходит все ссылки в пределах одного домена, начиная с индекса) вдруг начал выдавать такую ошибку:
Warning: fopen(http://www......../index.html) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 412 Precondition Failed in /home/........... line 14

Хостер сказал, что необходимо давать правильные заголовки. Я с этим согласен. Применение =Header("User-agent: Mozilla 4.1");= результата не дало. Кто может, помогите. Какие заголовки надо выдавать в запросе, чтобы можно было открыть URL функцией fopen() [язык PHP]? Спасибо.
15K
20 декабря 2005 года
Jackson
3 / / 20.12.2005
Цитата:
Originally posted by ASL
Такая проблема: написанный мною скрипт индексации страниц моего сайта (последовательно обходит все ссылки в пределах одного домена, начиная с индекса) вдруг начал выдавать такую ошибку:
Warning: fopen(http://www......../index.html) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 412 Precondition Failed in /home/........... line 14

Хостер сказал, что необходимо давать правильные заголовки. Я с этим согласен. Применение =Header("User-agent: Mozilla 4.1");= результата не дало. Кто может, помогите. Какие заголовки надо выдавать в запросе, чтобы можно было открыть URL функцией fopen() [язык PHP]? Спасибо.



GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ru
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; Maxthon; .NET CLR 1.1.4322)
Host: localhost

7.1K
22 декабря 2005 года
ASL
34 / / 16.08.2005
Отвечу сам себе.
Функция fopen() в данном случае не работает. Пришлось использовать сокет и затем запрос:
<?
$host="http://localhost";
$port=":80";
$path="/site/index.html";
$abs_url="$host$port$path";

$query="GET $abs_url HTTP/1.1\r\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; Maxthon; .NET CLR 1.1.4322)\r\n".
"Host: $host$port\r\n".
"Referer: $host$port\r\n".
"Content-Type: application/x-www-form-urlencoded \r\n".
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n".
"Accept-Language: ru\r\n".
"UA-CPU: x86\r\n".
"\r\n";


#открываем соединение с сервером

$fp=fsockopen("127.0.0.1",80);
fputs($fp,$query);

if ($fp)
{

$content='';
while (!feof($fp))
{
$content=$content.fread($fp, 10000);
}
echo $content;
fclose($fp);
}

else echo "Ошибка сокета";
?>

Заголовки применил все, что нашел в книге.
Но выполняется дольше (весьма заметно), чем fopen(). Может, кто-то знает, как ускорить подобный процесс?
15K
23 декабря 2005 года
Jackson
3 / / 20.12.2005
Попробуй своим методом открой страничку с удалённого сервера. Удивишься ;)
Делай через curl
15K
23 декабря 2005 года
Jackson
3 / / 20.12.2005
Цитата:
Originally posted by ASL
Отвечу сам себе.
Функция fopen() в данном случае не работает. Пришлось использовать сокет и затем запрос:



И ещё, fopen() тоже работает ;) неправильно что-то делал, если не получилось.

7.1K
23 декабря 2005 года
ASL
34 / / 16.08.2005
Цитата:
Делай через curl



Дай пример, если не трудно, использования cURL в данном случае (желательно, проверенный на практике, ведь теория от практики отличается :-) )

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог