|
|
|
| Добрый день господа, у меня такой вопрос:
Как можно найти на сторонних сайтах определенные строки кода?
чтобы стало понятней приведу пример:
Допустим у меня каталог сайтов, но участие в нем предусматривает наличие обратной ссылки,
как мне проверить наличие этой ссылки? (1 - 2 можно и в ручную, но их там допустим 600)
понятное дело что через циклы, но как найти эту ссылку в коде всей странице.
Если передать переменной $A весь код и потом искать там:
$a=file_get_contents('http://www.adres.ru/str.php');
то получается очень долго...
можно ли побыстрее как нибудь? | |
|
|
|
|
|
|
|
для: darkozoid
(08.01.2012 в 12:34)
| | Как я понимаю эту проблему, то ссылка может находиться в любом месте на сайте, Вы ни как не сможете угадать где. Поэтому надо парсить полностью страницу, то есть получать весь код страницы и там уже искать нужную ссылку. | |
|
|
|
|
|
|
|
для: Slo_Nik
(08.01.2012 в 13:33)
| | спасибо | |
|
|
|
|
|
|
|
для: Slo_Nik
(08.01.2012 в 13:33)
| | а вот ситуация получилась...
все работает на сайтах где есть страница...
ну например искомый кусок кода должен стоять на главной странице сайта,
тогда я в переменную получаю код этой страницы и там ищу нужный мне кусок...
все хорошо если адрес сайта www.site.ru
а главная страница у него index.php или index.html или какая угодна, но страница!
на ucoz этот способ не работает, там адрес просто www.site.ru/ и все... не могу найти страницу...
другими словами если написать так
$html_site=@file_get_contents("http://www.site.ucoz.ru");
|
то переменная $html_site пустая...
что тут можно сделать? | |
|
|
|
|
|
|
|
для: darkozoid
(08.01.2012 в 21:10)
| | для начала убрать "собачку" перед file_get_contents();
этот символ "подавляет" ошибки/предупреждения/замечания... затрудняет отладку кода... | |
|
|
|
|
|
|
|
для: Slo_Nik
(08.01.2012 в 21:32)
| | а там все равно нет ошибки....
$html_site=file_get_contents("http://www.site.ucoz.ru")
if(!empty($html_site)){
делаем что то
}else{
echo"нет доступа к странице<br>";}
|
| |
|
|
|
|
|
|
|
для: darkozoid
(08.01.2012 в 21:56)
| | у меня всё сработало...
код работает, а вот причина по которой у Вас не работает......
возможно отключён вывод ошибок....
а вот адрес http://site.dev есть не что иное как обращение к index файлу, так что страница есть всегда ))) | |
|
|
|
|
|
|
|
для: Slo_Nik
(08.01.2012 в 22:13)
| | проверяю:
вот страница с кодом http://www.moyforex.info/test.php
вот код этой страницы (больше там нет вообще ни чего)
<?
$html_site=file_get_contents("http://www.moyforex.ucoz.ru");
if(!empty($html_site)){
echo"код есть";
}else{
echo"нет доступа к странице<br>";}
?>
|
результат: нет доступа к странице | |
|
|
|
|
|
|
|
|
для: darkozoid
(08.01.2012 в 22:41)
| | А у меня ответ "код есть". | |
|
|
|
|
|
|
|
для: darkozoid
(08.01.2012 в 21:56)
| | Скорее всего там просто стоит проверка юзер-агента и выход если юкоса не устраивает то что ему передали. Нужно загружать через curl и передавать все заголовки имитируя работу реального браузера. | |
|
|
|
|
|
|
|
для: Sfinks
(08.01.2012 в 22:52)
| | >Скорее всего там просто стоит проверка юзер-агента и выход если юкоса не устраивает то что ему передали. Нужно загружать через curl и передавать все заголовки имитируя работу реального браузера.
м.... а как это сделать?
если убрать из адреса www то все работает... | |
|
|
|
|
|
|
|
для: darkozoid
(08.01.2012 в 22:54)
| | > м.... а как это сделать?
Забудьте. у меня ответ КОД ЕСТЬ, значит не в этом проблема. И вообще как у вас может быть "нет доступа" если уже у двоих при всех равных условиях код есть? | |
|
|
|
|
|
|
|
для: Sfinks
(08.01.2012 в 22:57)
| | Да черт его знает.....
если адрес http://www.site.ucoz.ru то доступа нет
а если http://site.ucoz.ru то все ок | |
|
|
|
|
|
|
|
для: darkozoid
(08.01.2012 в 22:54)
| | Кстати, кэш чистить не забываете? | |
|
|
|
|
|
|
|
для: Киналь
(08.01.2012 в 23:03)
| | >Кстати, кэш чистить не забываете?
нет | |
|
|
|
|
|
|
|
для: darkozoid
(08.01.2012 в 23:05)
| |
<?
$html_site=file_get_contents("http://www.moyforex.ucoz.ru");
if(!empty($html_site)){
echo"код есть";
}else{
echo"нет доступа к странице<br>";}
?>
|
этот код и у меня работает
на всякий случай добавьте в код, в самом начале error_reporting(E_ALL); возможно надо увеличить время выполнения скрипта через set_time_limit();
возможно ещё какие то настройки Вашего сервера влияют на работу скрипта.
Но, код рабочий..... | |
|
|
|
|
|
|
|
для: Slo_Nik
(08.01.2012 в 23:18)
| | спасибо всем большое... но проще убрать из адреса www и все работает... может просто у меня руки не прямые, а может сервер такой... | |
|
|
|