Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
Делаю скрипт, который читает содержимое удаленной веб-страницы в переменную, но сначала хотелось бы проверить, а веб-страница ли это? Как можно проверить тип открываемого URL-адреса? Ведь браузеру, когда заходишь на какой-нибудь сайт, передается тип документа (text/html, application/xml и т.д.). Как это можно проверить с помощью PHP в моем случае?
Заранее огромное спасибо!
valenok
Отправлено: 10 Июля, 2008 - 23:16:36
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Никак. Заголовки вам могут сунуть любые.
----- Truly yours, Sasha.
Павел
Отправлено: 11 Июля, 2008 - 11:53:41
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
Чаще всего ведь правильные заголовки посылают. Да вопрос не в том, подскажите, как можно эти заголовки прочитать, а правильные они или нет - вопрос отдельный.
EuGen
Отправлено: 11 Июля, 2008 - 12:36:36
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Веб-сервер отдает заголовок content-type, его и прочтите.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
valenok
Отправлено: 11 Июля, 2008 - 12:40:41
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
При помощи curl
--
Тем не менее если вам этот метод вас не защитит. А если не защитит то и не надо им пользоваться как методом защиты.
----- Truly yours, Sasha.
Павел
Отправлено: 11 Июля, 2008 - 12:49:37
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
На счет того, что не защитит - это ладно. Я ведь только набираю опыт. Но если Вам не лень, то предложите другой вариант решения этой проблемы. Буду только благодарен.
Цитата:
При помощи curl
Уже нашел статью по этому вопросу. попытаюсь что-то из нее понять. Только там про сокеты написано...
valenok
Отправлено: 11 Июля, 2008 - 13:17:08
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Если в статье кюрла слишком много про сокеты - ищите другую.
В качетсве методов защиты -
вариант первый это не читать страницу с удалённого сервера вовсе,
второй вариант это вовсе не проверять тип, ибо какая разница что это.
----- Truly yours, Sasha.
Павел
Отправлено: 11 Июля, 2008 - 13:24:04
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
Цитата:
вариант первый это не читать страницу с удалённого сервера вовсе
Не, ну это не выход. Мне как раз и нужно читать страницу с удаленного сервера.
Цитата:
второй вариант это вовсе не проверять тип, ибо какая разница что это
Мне нужна именно веб-страница, а не какой-нибудь архив или PDF-файл...
valenok
Отправлено: 11 Июля, 2008 - 14:03:37
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
А скажите зачем это нужно
----- Truly yours, Sasha.
Павел
Отправлено: 11 Июля, 2008 - 14:14:51
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
valenok пишет:
А скажите зачем это нужно
Да вот в качестве тренировки решил написать небольшой скрипт для поиска по сайту, что бы ходил по ссылкам, находил только ссылки, принадлежащие этому сайту, открывал их и индексировал содержимое. По-этому нужно что бы он умел определять, где веб-страница, а где - нет.
Павел
Отправлено: 12 Июля, 2008 - 12:58:17
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
Нет, все таки у самого что-то не получается организовать проверку content-type. Прошу помощи. Вот код функции, которая открывает удаленный URL и читает исходный код документа в переменную. Нужно усовершенствовать ее, что бы она проверяла content-type и открывала только тектовые и HTML-документы.
Прошу помощи в усовершенствовании функции. Заранее спасибо!
valenok
Отправлено: 12 Июля, 2008 - 13:17:43
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Лучше вам тогда проверять по расширению.
Тогда картинки и прочие уже не будут обрабатываться и скачиваться кюрлом.
А вам следует использовать CURLOPT_HEADER и парсить заголовки.
----- Truly yours, Sasha.
Павел
Отправлено: 12 Июля, 2008 - 14:29:40
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
По расширению я сделаю, но ведь бывает, что картинка или архив отдаются не по прямым ссылкам с расширением, а сгенерированные скриптом.
А вот с CURLOPT_HEADER у меня почему то ничего не выходит. Точнее не получается так сделать, что бы сначала получить только заголовки, проверить их, и если они подходят, скачать все остальное содержимое. У меня почему то либо вообще ничего не выводиться:
Подскажите пожалуйста, как решить эту проблему. Ведь нужно сначала загрузить заголовки и проверить их, а потом все остальное. Какой смысл скачивать многомегабайтный архив, что бы потом проверить его заголовки и понять, что это не то, что ожидалось? Очень надеюсь на помощь.
valenok
Отправлено: 12 Июля, 2008 - 14:35:15
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Заголовки чего ?
Где запрашываемая страница, где опция убирающая скачивание всего контента ?
ДАвай в мануал, там читать про все опции и оттуда же копировать код и потихоньку модифицировать.
----- Truly yours, Sasha.
Павел
Отправлено: 12 Июля, 2008 - 14:48:39
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
Я кажется начинаю разбираться что к чему... Спасибо Вам большое!
Сейчас буду переделывать функцию чтения удаленного документа, но мне нужно знать какие content-type бывают, то есть какие мне оставлять. Перечислите мне пожалуйста, если нетрудно, а то я кроме text/html и text/plain никаких не знаю.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.