Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: поиск кода на чужой странице
 
 автор: darkozoid   (08.01.2012 в 12:34)   письмо автору
 
 

Добрый день господа, у меня такой вопрос:
Как можно найти на сторонних сайтах определенные строки кода?
чтобы стало понятней приведу пример:
Допустим у меня каталог сайтов, но участие в нем предусматривает наличие обратной ссылки,
как мне проверить наличие этой ссылки? (1 - 2 можно и в ручную, но их там допустим 600)
понятное дело что через циклы, но как найти эту ссылку в коде всей странице.
Если передать переменной $A весь код и потом искать там:
$a=file_get_contents('http://www.adres.ru/str.php');
то получается очень долго...
можно ли побыстрее как нибудь?

  Ответить  
 
 автор: Slo_Nik   (08.01.2012 в 13:33)   письмо автору
 
   для: darkozoid   (08.01.2012 в 12:34)
 

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

  Ответить  
 
 автор: darkozoid   (08.01.2012 в 14:07)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 13:33)
 

спасибо

  Ответить  
 
 автор: darkozoid   (08.01.2012 в 21:10)   письмо автору
 
   для: 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 пустая...
что тут можно сделать?

  Ответить  
 
 автор: Slo_Nik   (08.01.2012 в 21:32)   письмо автору
 
   для: darkozoid   (08.01.2012 в 21:10)
 

для начала убрать "собачку" перед file_get_contents();
этот символ "подавляет" ошибки/предупреждения/замечания... затрудняет отладку кода...

  Ответить  
 
 автор: darkozoid   (08.01.2012 в 21:56)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 21:32)
 

а там все равно нет ошибки....

$html_site=file_get_contents("http://www.site.ucoz.ru")
if(!empty($html_site)){
делаем что то
}else{
echo"нет доступа к странице<br>";}

  Ответить  
 
 автор: Slo_Nik   (08.01.2012 в 22:13)   письмо автору
 
   для: darkozoid   (08.01.2012 в 21:56)
 

у меня всё сработало...
код работает, а вот причина по которой у Вас не работает......
возможно отключён вывод ошибок....
а вот адрес http://site.dev есть не что иное как обращение к index файлу, так что страница есть всегда )))

  Ответить  
 
 автор: darkozoid   (08.01.2012 в 22:41)   письмо автору
 
   для: 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>";} 
?>


результат: нет доступа к странице

  Ответить  
 
 автор: Киналь   (08.01.2012 в 22:51)   письмо автору
 
   для: darkozoid   (08.01.2012 в 22:41)
 

Что-то тут не то=)

  Ответить  
 
 автор: Sfinks   (08.01.2012 в 22:54)   письмо автору
 
   для: darkozoid   (08.01.2012 в 22:41)
 

А у меня ответ "код есть".

  Ответить  
 
 автор: Sfinks   (08.01.2012 в 22:52)   письмо автору
 
   для: darkozoid   (08.01.2012 в 21:56)
 

Скорее всего там просто стоит проверка юзер-агента и выход если юкоса не устраивает то что ему передали. Нужно загружать через curl и передавать все заголовки имитируя работу реального браузера.

  Ответить  
 
 автор: darkozoid   (08.01.2012 в 22:54)   письмо автору
 
   для: Sfinks   (08.01.2012 в 22:52)
 

>Скорее всего там просто стоит проверка юзер-агента и выход если юкоса не устраивает то что ему передали. Нужно загружать через curl и передавать все заголовки имитируя работу реального браузера.

м.... а как это сделать?


если убрать из адреса www то все работает...

  Ответить  
 
 автор: Sfinks   (08.01.2012 в 22:57)   письмо автору
 
   для: darkozoid   (08.01.2012 в 22:54)
 

> м.... а как это сделать?
Забудьте. у меня ответ КОД ЕСТЬ, значит не в этом проблема. И вообще как у вас может быть "нет доступа" если уже у двоих при всех равных условиях код есть?

  Ответить  
 
 автор: darkozoid   (08.01.2012 в 23:04)   письмо автору
 
   для: Sfinks   (08.01.2012 в 22:57)
 

Да черт его знает.....

если адрес http://www.site.ucoz.ru то доступа нет
а если http://site.ucoz.ru то все ок

  Ответить  
 
 автор: Киналь   (08.01.2012 в 23:03)   письмо автору
 
   для: darkozoid   (08.01.2012 в 22:54)
 

Кстати, кэш чистить не забываете?

  Ответить  
 
 автор: darkozoid   (08.01.2012 в 23:05)   письмо автору
 
   для: Киналь   (08.01.2012 в 23:03)
 

>Кстати, кэш чистить не забываете?

нет

  Ответить  
 
 автор: Slo_Nik   (08.01.2012 в 23:18)   письмо автору
 
   для: 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();
возможно ещё какие то настройки Вашего сервера влияют на работу скрипта.
Но, код рабочий.....

  Ответить  
 
 автор: darkozoid   (08.01.2012 в 23:44)   письмо автору
 
   для: Slo_Nik   (08.01.2012 в 23:18)
 

спасибо всем большое... но проще убрать из адреса www и все работает... может просто у меня руки не прямые, а может сервер такой...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования