проверка наличия ссылки на странице с пом. php

12
L
На сайте с 10.03.2007
Offline
31
2417

Зравствуйте!

Мне нужно сделать маленький скрипт который будет проверять наличие сылки на странице. Например есть адрес страницы и текст и полный код ссылки, нужно проверить есть ли она на странице. Я пробовал делать так

$f = fopen($url,"w");

дальше у меня не получаеться прочитать страницу

$str = fread($f,???); не знаю как указать размер файла через filesize не молучается.

и тут необходимо сделать поиск текста в тексте и в случае нахождения делать какое либо действие.

fclose($f);

Помогите пожалуста!

NewsThreads.org - Новости и события со всего мира (http://newsthreads.org) StyleTK.com - Сайт стилиста Татьяны Крамаренко (http://styletk.com)
R
На сайте с 04.11.2005
Offline
113
#1

lebron,

загоняй содержание файла в строку

например $file=join('',file('http://wwwww'));

а дальше с помощью регулярок или строковых фуункций проверяй наличие того, что тебя интересует.

L
На сайте с 10.03.2007
Offline
31
#2

а можно подробней, что делае функция join, чтобы получить содержание файла мне его сначал нужно прочитать, а я не могу так как не могу узнать его размер а функция filesize работает только с локальными файлами

R2
На сайте с 01.02.2007
Offline
28
#3

lebron,

не уверен, что понял правильно, но попробовать

file_get_contents

и дальше как сказал robust...

FView
На сайте с 03.05.2006
Offline
186
#4

юзайте file_get_contents и не будет проблем :)

edogs software
На сайте с 15.12.2005
Offline
775
#5

Ни в коем случае не надо использовать файловые функции типа fopen, file_get_contents, file и т.д., это ужасно.... по многим причинам.

Идеально - curl, если этой либы не стоит (у всех нормальных хостеров она стоит), тогда fsockopen и далее по тексту.

И к fsockopen и к curl есть в мане примеры для чтения урлов удаленных.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
antono
На сайте с 12.07.2004
Offline
303
#6
edogs:
Ни в коем случае не надо использовать файловые функции типа fopen, file_get_contents, file и т.д., это ужасно.... по многим причинам.

А что это за причины?

edogs software
На сайте с 15.12.2005
Offline
775
#7
antono:
А что это за причины?

Первая и главная - не надо забивать шурупы молотком:) Файловые функции надо оставить для работы с файлами, а для работы с урлами использовать урловые. Это логично как бы.

А так... Урловые функции быстрее, урловые функции не подвесят сервер если сайт на который идет запрос не отвечает (было такое), урловые функции не зависят от настроек allow_url_fopen (который хостер иногда принудительно запрещает), урловые функции таки содержат настройки для работы с урлами (иногда для грабления надо посылать заголовки специфичные, или по тайм-ауту отрубаться и т.д. и т.п.), с урловыми функциями Вы не будете удивлятся почему у Вас "while (!feof($handle)) {" не докачивает файл хотя "это же так в мануале" (тоже из практики), можно было еще чего-нибудь вспомнить, но имхо достаточно.

Главный аргумент все-таки первый. Для урлов надо пользоваться инструментом предназначенным для урлов, а не надстройкой костылями над функциями файловой системы. А учитывая что урловые функции ничуть не сложнее файловых в применении (разве нет?)... так "зачем же?" (с)

FView
На сайте с 03.05.2006
Offline
186
#8
edogs:
Первая и главная - не надо забивать шурупы молотком:) Файловые функции надо оставить для работы с файлами, а для работы с урлами использовать урловые. Это логично как бы.
А так... Урловые функции быстрее, урловые функции не подвесят сервер если сайт на который идет запрос не отвечает (было такое), урловые функции не зависят от настроек allow_url_fopen (который хостер иногда принудительно запрещает), урловые функции таки содержат настройки для работы с урлами (иногда для грабления надо посылать заголовки специфичные, или по тайм-ауту отрубаться и т.д. и т.п.), с урловыми функциями Вы не будете удивлятся почему у Вас "while (!feof($handle)) {" не докачивает файл хотя "это же так в мануале" (тоже из практики), можно было еще чего-нибудь вспомнить, но имхо достаточно.
Главный аргумент все-таки первый. Для урлов надо пользоваться инструментом предназначенным для урлов, а не надстройкой костылями над функциями файловой системы. А учитывая что урловые функции ничуть не сложнее файловых в применении (разве нет?)... так "зачем же?" (с)

ну про "подвесить" вы перегнули палочку, а вот про curl можно и им, но конечно curl правильнее пользовать ... :)

edogs software
На сайте с 15.12.2005
Offline
775
#9
FView:
ну про "подвесить" вы перегнули палочку...,

В том то и дело что нет:( Один раз работали когда - у человека ВДС падал раз в час, выяснилось что граббер пытавшийся брать инфу через file_get_contents ронял вдс когда удаленный хост был недоступен (не разбирались почему именно - из-за неответа или днс). Допускаем, конечно, что проблема была в версии пхп или еще чем-то, но смена механизма на curl помогла.

По поводу поиска по тексту - если надо искать точную простую последовательность, то stristr. Если что-то более сложное - preg_match.

R2
На сайте с 01.02.2007
Offline
28
#10
edogs:
По поводу поиска по тексту - если надо искать точную простую последовательность, то stristr. Если что-то более сложное - preg_match.

И при этом постоянно помним, что мы можем найти интересующий нас УРЛ

на странице, но он может НЕ быть ссылкой...

На 100% отловить ссылку достаточно муторно :(

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий