Реклама на сайте Advertise with us
Тема: Php - проверка ссылки Расширенный поиск по форуму
 
Внимание! В связи с устареванием топика эта страница была взята из кэша.
Автор Сообщение
Информация о пользователе Sven


Зарегистрирован: 17.10.02
Сообщения: 55
Ссылка на сообщениеДобавлено: 16/11/03 в 01:36     

А можно как-нибудь желательно на php проверить:
1. работает-ли ссылка (т.е. открывается-ли по ней вообще что-нибудь)?
2. ведет-ли она туда куда и указывает или редиректит на 404?
имеется большая база ссылок и хочется оттуда все мертвые отсеять.

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 1377
Ссылка на сообщениеДобавлено: 16/11/03 в 01:46     

У меня есть бальшущий класс специально для работы ПХП в режиме браузера. Никак не доходят руки до ума довести и выложить на Open Source.

Ну а вообще, делаешь так.

Проверяем ссылку http://google.com/folder/document.htm

1. fsockopen - открываешь соединение к хосту google.com
2. fputs - посылаем запрос HEAD:

Код:
HEAD /folder/document.htm HTTP/1.1 (здесь \r\n\r\n)

3. fgets - читаем ответ. Если он начинается не так (цифра отлична от 200):
Код:
HTTP/1.1 200 OK
(вместо Ок может быть что-то другое, главное цифра 200), то значит лажа.
4. закрываем сокет.

И ... читаем спецификацию протокола HTTP в RFCне_помню_какой. :-)

K началу

 
Информация о пользователе perlmaster


Зарегистрирован: 27.02.03
Сообщения: 455
Ссылка на сообщениеДобавлено: 16/11/03 в 19:03     

RFC2616

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 719
Ссылка на сообщениеДобавлено: 16/11/03 в 19:43     

блин, как я обожаю такие содержательные ответы. Вот незнают что написать, то обязательно вбубенять код рфц, или вообще ртфм - и сидят довольные своей крутостью.

www.hotscripts.com - берем любой линкчекер и смотрим как он это делает.

K началу

 
Информация о пользователе perlmaster


Зарегистрирован: 27.02.03
Сообщения: 455
Ссылка на сообщениеДобавлено: 16/11/03 в 20:10     

Stek писал:
блин, как я обожаю такие содержательные ответы. Вот незнают что написать, то обязательно вбубенять код рфц, или вообще ртфм - и сидят довольные своей крутостью.

Это в мой огород камень?
Я номер RFC написал в дополнение к посту Pentarh, который все что можно было разъяснил. У него, если кто-то не заметил, было упоминание соответствующего документа rfc, только без номера. А документ между прочим архиполезный для любого, кто заиимается веб-ботами и автоматизацией веба.
Поэтому давай-ка научимся читать чужые посты и не варнякать.

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 719
Ссылка на сообщениеДобавлено: 16/11/03 в 20:43     

Поэтому давай ка лучше научимся давать линки на то, на что ссылаемся, а не выдать просто параграф

K началу

 
Информация о пользователе perlmaster


Зарегистрирован: 27.02.03
Сообщения: 455
Ссылка на сообщениеДобавлено: 16/11/03 в 22:12     

http://www.w3.org/Protocols/rfc2616/rfc2616.html

K началу

 
Информация о пользователе Sven


Зарегистрирован: 17.10.02
Сообщения: 55
Ссылка на сообщениеДобавлено: 17/11/03 в 00:25     

smail54.gif
спасибо всем, особенно Pentarh
пишу скрипт, вроде все начинает работать.

K началу

 
Информация о пользователе Jam


Зарегистрирован: 01.10.03
Сообщения: 221
Ссылка на сообщениеДобавлено: 17/11/03 в 01:08     

Как раз вопрос в эту тему.
Получаю ответ от сервака, он мне скидывает страницу, а нужно только узнать что HTTP 200....можно ли коннект отрубить по приходу заголовка HTTP 200 ?

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 1377
Ссылка на сообщениеДобавлено: 17/11/03 в 02:58     

Jam писал:
Как раз вопрос в эту тему.
Получаю ответ от сервака, он мне скидывает страницу, а нужно только узнать что HTTP 200....можно ли коннект отрубить по приходу заголовка HTTP 200 ?


При запросе типа HEAD, сервер посылает в ответ только заголовки HTTP, в отличии от запроса GET или POST, где вслед за заголовками идет запрашиваемый документ полностью. Т.е. отрубать связь при получении первой строчки нет смысла, т.к. этих строчек всего будет штук пять-десять (т.е. мало).

Для тех, кто делает первые шаги в этом деле и пробует перепарсить ответ на GET или POST, поделюсь своими шишками.
Есть такой формат кодировки тела ответа сервера, как
Код:
Transfer-encoding: chunked

Так вот. Если в ответе присутствует этот хэадер, то в теле ответа имеют место "лишние" (не относящиеся к документу) байты.
Как расшифровать, можно опять же почитать в RFC, если не поймете, запостите вопросик, я отвечу (много писать надо).

2Stek: готовое оно конечно хорошо, только вот если человек сам в этом раздуплится, то намного полезнее будет.

K началу

 
Информация о пользователе Jam


Зарегистрирован: 01.10.03
Сообщения: 221
Ссылка на сообщениеДобавлено: 17/11/03 в 15:37     

не стоит писать то что много раз написано
гугл поможет
http://starcat.dp.ua/doc/wdh/http.htm
полезная для новичков статья, одна из многих, которые можно самому найти...
а то на чём споткнулись лучше написать icon_smile.gif ведь на чужих ошибках учатся icon_smile.gif

Код:
Transfer-encoding: chunked

надо посмотреть в своих ответах, но пока вроде всё работает
эти "лишние" символы где появляются? и собсно что это за символы
заранее благодарен
P.S. а HEAD - как раз то, что нужно thanks!
P.P.S. кому интересно RFC 2068 на русском http://www.helloworld.ru/texts/comp/inet/http/http1/index.htm

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 1377
Ссылка на сообщениеДобавлено: 18/11/03 в 13:12     

Ну попробую простыми словами описать главу 3.6 RFC2616:

chunk - это "кусок" тела HTTP-ответа.

Так вот. Тело ответа в этом случае делится на "чанки" - куски. Если в обычном Transfer-Encoding тело идет непрерывно, т.е. документ как он есть, то в "чанковом" случае, документ дет так:

длинна_куска_в_16_ричном_формате\r\n
кусок_ответа
длинна_куска_в_16_ричном_формате\r\n
кусок_ответа
.....
\0

Например:

Код:

1a
<HTML><HEAD><TITLE>Hello w
4
orld
\0


Hope this helps

K началу

 
Информация о пользователе Jam


Зарегистрирован: 01.10.03
Сообщения: 221
Ссылка на сообщениеДобавлено: 18/11/03 в 15:20     

помогло, ещё раз сенькс icon_smile.gif

K началу

 
Информация о пользователе Jam


Зарегистрирован: 01.10.03
Сообщения: 221
Ссылка на сообщениеДобавлено: 20/11/03 в 16:38     

2 Sven
ищи PHP Kung Foo Link Checker
сделай страницу со всеми линками и натрави чекер на страницу, всё покажет всё расскажет icon_smile.gif)

K началу

 
Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!
Внимание! В связи с устареванием топика эта страница была взята из кэша.

Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »