[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка веб страницы на наличие ссылки
atarix
Задача такова - есть ссылка сайта(назовём её $remote) и ссылка которую там проверяем (фактически обычный текст, назовём её $text)

Знаю один вариант, но он не благодарный - file_get_content

Нужно что то очень быстрое, и лёгкое по ресурсам, так как на по всему сайту это будет работать.



Спустя 7 часов, 41 минута, 46 секунд (14.05.2009 - 21:24) jetistyum написал(а):
ну если file_get_contents() - не благодарный вариант
юзай curl - это будет очень изыскано smile.gif
а искать - strpos() для точных совпадений и preg_match для поиска по паттернам...
и неужели file_get_contents() такой ресурсоёмкий????

Спустя 3 часа, 27 минут, 3 секунды (15.05.2009 - 00:51) FatCat написал(а):
Курл не даст выигрыша, все равно тушу страницы нужно тащить.

Спустя 50 минут, 36 секунд (15.05.2009 - 01:42) jetistyum написал(а):
согласен, но раз не нравится человеку file_get_contents () smile.gif

Спустя 4 часа, 26 минут, 6 секунд (15.05.2009 - 06:08) atarix написал(а):
file_get_contents () как я понимаю обёртка набора кода Curl.
работа данных "методов" сводится к - скачать файл (страницу с картинками и мультимедия) во временный файл. есть ли возможность качать только текст ? или принципиально другой подход (например качать кусками и проверять по кускам - так можно выиграть ресурсы и меньше гонять траффика)

ещё появилась идея... можно ли создать переменную - ссылку на удалённый файл (@) и организовать "оптимизированную" работу с ним ?

Спустя 2 часа, 14 минут, 57 секунд (15.05.2009 - 08:23) glock18 написал(а):
1. "качать только текст"... ну если ты говоришь о том, чтобы не качать хедеры, то не советую. Это, наверно, возможно, но выигрыша не даст никакого.

2. Качать по кускам гораздо ниже по скорости, чем весь файл. Конечно, если тебе нужны первые три строки, то другое дело. копай в сторону fopen, fsockopen и fgets. Они тебе помогут построчно все вытаскивать, вот только не уверен, что пользы от этого много будет.

Цитата
можно ли создать переменную - ссылку на удалённый файл (@) и организовать "оптимизированную" работу с ним ?


Не думаю, что это возможно. По-моему, это логически невозможно в принципе.

Спустя 2 часа, 7 минут, 39 секунд (15.05.2009 - 10:30) atarix написал(а):
Цитата
Качать по кускам гораздо ниже по скорости, чем весь файл

из за цикличности процесса ?

нашёл следующий код:

PHP
$tmp_file=@file($url_link);
$fgets implode("",$tmp_file);


далее идёт обработка текста.
я так понимаю функция file качает файл (хтмл код) на сервер и разбирает его на массив ? и далее уже работаем с массивом...

как в таком случае можно обработать ЧПУ, редиректы и в случае ошибки соединение каков дальнейший ход событий ?

Спустя 11 минут, 21 секунда (15.05.2009 - 10:42) glock18 написал(а):
Цитата
Цитата
Качать по кускам гораздо ниже по скорости, чем весь файл

из за цикличности процесса ?


Нуу... в какой-то степени. Только я думаю, что это не совсем тот термин. Просто при скачивании всего файла целиком тебе не нужно посимвольно его считывать.

Цитата
нашёл следующий код:

Лучше выброс этот код на свалку)). Во-первых, если я не ошибаюсь, массив получится со строками - один в один то, что получается file_get_contents, только без implode.

Во-вторых, использование @ вообще не есть хороший стиль.

Вместо этого куска лучше file_get_contents используй.

Отредактировал после:

Вру))) file возвращает массив, как и file_get_contents, а implode делает из него строку.

Спустя 41 минута, 18 секунд (15.05.2009 - 11:23) atarix написал(а):
Цитата
Нуу... в какой-то степени. Только я думаю, что это не совсем тот термин. Просто при скачивании всего файла целиком тебе не нужно посимвольно его считывать.


не вывод а проверка куска. допустим разбиваем файл на 100 кусков, а нужный код в 100 куске. в итоге 100 раз проверяем (100 условий) + зацикливание процесса.

Цитата

Во-вторых, использование @ вообще не есть хороший стиль.

Вместо этого куска лучше file_get_contents используй.

Отредактировал после:

Вру))) file возвращает массив, как и file_get_contents, а implode делает из него строку.


значит file_get_contents возвращяет тоже самое что и $tmp_file=@file($url_link); ?

блин, получается других вариантов нет (fopen, fsockopen и fgets ещё почитаю)?

PS интересно, а что быстрей - file_get_contents или file ?

Спустя 53 минуты, 42 секунды (15.05.2009 - 12:17) waldicom написал(а):
Цитата
значит file_get_contents возвращяет тоже самое что и $tmp_file=@file($url_link); ?

file_get_contents() возвращает строку, а file($url_link) - массив.

Спустя 15 минут, 2 секунды (15.05.2009 - 12:32) glock18 написал(а):
До чего иногда до мануала дойти лень))) waldicom прав. спасибо, что поправил.

Кстати, получается, что я, сделав ошибку, сказал правильно biggrin.gif :

Цитата
один в один то, что получается file_get_contents, только без implode

Спустя 5 часов, 57 минут, 37 секунд (15.05.2009 - 18:29) jetistyum написал(а):
Цитата

file_get_contents () как я понимаю обёртка набора кода Curl.
работа данных "методов" сводится к - скачать файл (страницу с картинками и мультимедия) во временный файл. есть ли возможность качать только текст ?

1.На счет обертки - не уверен... тем более что curl подключается отдельной библиотекой... а file_get_contents работает сам-по-себе.. стало быть разные методы
2. покажи мне код, который скачивает сам-по-себе страницу со всеми картинками и мультимедиа...


Спустя 1 день, 5 часов, 24 минуты, 41 секунда (16.05.2009 - 23:54) atarix написал(а):
Цитата (jetistyum @ 15.05.2009 - 15:29)
Цитата

file_get_contents () как я понимаю обёртка набора кода Curl.
работа данных "методов" сводится к - скачать файл (страницу с картинками и мультимедия) во временный файл. есть ли возможность качать только текст ?

1.На счет обертки - не уверен... тем более что curl подключается отдельной библиотекой... а file_get_contents работает сам-по-себе.. стало быть разные методы
2. покажи мне код, который скачивает сам-по-себе страницу со всеми картинками и мультимедиа...

1. значит не Curl ?.. blink.gif
2. покажи мне код, который скачивает сам-по-себе страницу со всеми картинками и мультимедиа...

у меня нету такого кода. мне наоборот нужнен только хтмл текст.

Спустя 49 минут, 53 секунды (17.05.2009 - 00:44) jetistyum написал(а):
ну и file_get_contents() и получение страницы curl-методами... не скачает тебе картинки, вооообще откуда такая информация....
Цитата
file_get_contents () как я понимаю обёртка набора кода Curl.
работа данных "методов" сводится к - скачать файл (страницу с картинками и мультимедия) во временный файл.

НУ КТО ТЕБЕ ТАКОЕ СКАЗАЛ что с картинками и мультимедиа..
тоесть ты даже не попробовал... сам себе решил что это будет качать вместе с картинками, и решил искать другой метод....
офигенный подход к программированию

Спустя 21 минута, 11 секунд (17.05.2009 - 01:05) waldicom написал(а):
Цитата (jetistyum @ 15.05.2009 - 16:29)
2. покажи мне код, который скачивает сам-по-себе страницу со всеми картинками и мультимедиа...

PHP
exec('wget -m -k -K http://website.com');

А че, чем не код tongue.gif

пысы. все, все, я понял. это была шутка smile.gif

Спустя 46 минут, 49 секунд (17.05.2009 - 01:52) jetistyum написал(а):
waldicom
Цитата


exec('wget -m -k -K http://website.com');

А че, чем не код tongue.gif


это удар ниже пояса smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.