Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2011, 09:25   #1
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию php sitemap fsockopen

Вот взялся за написание нескольких сервисов, одним из которых является сервис для построения sitemap.(включил почти все, даже можно видеофайлы при желании добавлять в sitemap)
Но столкнулся с проблемой проверки существования страницы. Например мы соединяемся по сокету с сервером
PHP код:
$this->_fp = @fsockopen(($this->_protocol == 'https' 'ssl://' '') . $this->_host$this->_port,$errno,$errstr,5); 
и если удалось, то начинаем читать...
Но если страницы не существует, то соединение конечно же получится и прочитаем мы 404 страницу от сервера. В хидерах пришедших от сервака ничего указывающего на ошибку не откопать, остается только делать hash(md5 например) и исключать страницы с одинаковыми хешами.
Но проблема резко выражена при проверке тяжелых файлов(pdf, doc, картинки и видео) Ведь их выгружать тяжеловесно...
___________________
О, вроде пришло решение пока писал... если мы грузим какие либо форматы(jpeg,pdf), то читать только хидер и проверять Content-Type
Попробую на досуге, но и не откажусь от предложений по исключению не валидных url...
Kostia вне форума Ответить с цитированием
Старый 22.07.2011, 09:43   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

Цитата:
...404... В хидерах пришедших от сервака ничего указывающего на ошибку не откопать
А статус "404 Not Found" куда делся-то из "хедеров"?
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 22.07.2011, 11:20   #3
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

по запросу:
http://flora-tomsk.ru/pictures/news/pre_1302512805.jpg3
получил:
Array ( [server] => nginx/0.7.65 [date] => Fri, 22 Jul 2011 07:15:07 GMT [content-type] => text/html; charset=iso-8859-1 [connection] => close [vary] => Accept-Encoding [content-length] => 231 )
а по: http://flora-tomsk.ru/pictures/news/pre_1302512805.jpg
получил:
Array ( [server] => nginx/0.7.65 [date] => Fri, 22 Jul 2011 07:18:43 GMT [content-type] => image/jpeg [connection] => close [last-modified] => Tue, 12 Apr 2011 05:35:04 GMT [etag] => "29e3c0b-81d-4a0b20ddc3200" [accept-ranges] => bytes [content-length] => 2077 [cache-control] => max-age=2592000 [expires] => Sun, 21 Aug 2011 07:18:43 GMT [content-language] => ru )
Kostia вне форума Ответить с цитированием
Старый 22.07.2011, 11:36   #4
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

PHP код:
var_dump(get_headers('http://flora-tomsk.ru/pictures/news/pre_1302512805.jpg3')); 
Цитата:
array(7) { [0]=> string(22) "HTTP/1.1 404 Not Found" [1]=> string(20) "Server: nginx/0.7.65" [2]=> string(35) "Date: Fri, 22 Jul 2011 07:35:12 GMT" [3]=> string(43) "Content-Type: text/html; charset=iso-8859-1" [4]=> string(17) "Connection: close" [5]=> string(21) "Vary: Accept-Encoding" [6]=> string(19) "Content-Length: 231" }
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 22.07.2011, 11:39   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> В хидерах пришедших от сервака ничего указывающего на ошибку не откопать

ответ 404 от сервера выглядит так:

Цитата:
HTTP/1.1 404 Not Found
Server: nginx/0.7.65
Date: Fri, 22 Jul 2011 07:35:21 GMT
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=15
Vary: Accept-Encoding
Content-Encoding: gzip
ищите, куда у вас строка "HTTP/1.1 404 Not Found" потерялась. Именно её надо анализировать.

> остается только делать hash

ага, и менять его каждый раз, когда одмин сайта меняет кастомную страничку 404
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 22.07.2011, 11:49   #6
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Всем спасибо! Помогли.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sitemap feesta Помощь студентам 0 21.04.2011 23:14
PHP fsockopen Alekcandr PHP 7 07.08.2009 11:40
Сканер(редактор) SITEMAP.XML Виталий Серов Софт 11 25.05.2009 00:09
fsockopen - одновременное использывание krok PHP 1 08.04.2009 22:41