Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск ссылок по сайтам.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нужно найти все ссылки на заданной странице.
rsemscom
Отправлено: 11 Октября, 2011 - 21:37:09
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Если какой-то оператор , который будет перехватывать исходный код страницы в include или как ещё можно такое сделать , ежели вообще можно?
А то я пытался открывать страницы , как файлы - пишет ошибку доступа и т.п..
"Написать php скрипт который выводит все ссылки (href атрибуты тега <a>), которые есть на странице http://где.то/там/. Url должны преобразовываться к абсолютной форме, дубликатов быть не должно. Адрес сайта передаётся через GET запрос через параметр url"
 
 Top
altermann
Отправлено: 14 Октября, 2011 - 22:50:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Март 2010  
Откуда: Днепропетровск


Помог: 6 раз(а)




Перехватить include можно так:

или с помощью функции file_get_contents()


-----
Я прирожденный кузнец, я не могу не куя!
 
 Top
White
Отправлено: 14 Октября, 2011 - 22:55:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




rsemscom страница у вас на сервере, ил где-то в другом месте?


-----
if(time()>1356048000) die();
 
 Top
rsemscom
Отправлено: 15 Октября, 2011 - 12:17:42
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




White пишет:
страница у вас на сервере, ил где-то в другом месте?

Ну по условию где-то в другом месте...
(Добавление)
altermann пишет:
Перехватить include можно так:
altermann пишет:

или с помощью функции file_get_contents()

Спасибо , попробую...

(Отредактировано автором: 15 Октября, 2011 - 12:26:58)

 
 Top
White
Отправлено: 15 Октября, 2011 - 12:37:43
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




rsemscom тогда
в случае с allow_url_fopen=1


-----
if(time()>1356048000) die();
 
 Top
rsemscom
Отправлено: 15 Октября, 2011 - 12:55:24
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




White пишет:
rsemscom тогда
в случае с allow_url_fopen=1

Cпасибо...
Блин , у меня не хватает комментариев на +-ки=(
 
 Top
rsemscom
Отправлено: 15 Октября, 2011 - 16:01:18
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function dom($t)
  3. {
  4. $s="";
  5. $s1=$k=0;
  6. while (strlen($s)<40)
  7.   {
  8.   if ($t[$k]=='/') $s1++;
  9.   if ($s1==3) break;
  10.   $s=$s.$t[$k];
  11.   $k++;
  12.   }
  13. if (strlen($s)<40) return $s; else return false;
  14. }
  15.  
  16.  
  17. function fa($mytext,$t)
  18.  {
  19. $z[0]="";
  20. $k=$c=0;
  21. $m=-1;
  22. for($i=0;$i<=strlen($mytext);$i++)
  23.  {$cur=$mytext[$i].$mytext[$i+1].$mytext[$i+2].$mytext[$i+3].$mytext[$i+4];
  24.   if ($mytext[$i].$mytext[$i+1]=="<a") $az=1;
  25.   if ($mytext[$i]==">") $az=0;
  26.  
  27.  if (($cur=="href=")&&($az)) {$s=""; $c=$i+6;
  28.                      while ($c) {
  29.                         if (($s.$mytext[$c] != '"')&&($s.$mytext[$c] != "'")) $s=$s.$mytext[$c];
  30.                         $c++;
  31.                         if ($mytext[$c]=='"') {
  32.                            if (($s[0]==' ')||(strstr($s, "java"))) break;
  33.                            if ($s[0]!='h') $s=$t.$s;
  34.                            $not=false;
  35.                            for ($j=0;$j<=$m;$j++) {
  36.                            if ($z[$j]==$s) {$not=true;break;}
  37.                            if ($z[$j]==$s."/") {$not=true;break;}
  38.                            if ($z[$j]."/"==$s) {$not=true;break;}
  39.                            }
  40.                              if (!$not) {$m++;$z[$m]=$s;$k++;
  41.                            echo "<input type='text'value=";echo $s;echo '><a href="';echo $s; echo '">ссылка';echo $k;echo ";</a><br>";}
  42.                            break;
  43.                                                                      }
  44.                               }
  45.                      }
  46.   }
  47.  }
  48.  $a=$_GET['e1'];
  49.  $t=dom($a);
  50.  $kod = file_get_contents($a);
  51.  if (($kod)&&($t)) fa($kod,$t); else echo "error!Unnable to open URL";
  52. ?>
  53.                          
  54. </head>
  55. </html>

В завершение темы страничка...
Спасибо...

(Отредактировано автором: 15 Октября, 2011 - 16:52:26)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB