Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проверка на валидность УРЛов


Автор: Sufius 23.6.2005, 09:54
Слушайте, люди...
Никто не сталкивался с написанием скрипта для проверки валидности сайтов?
Допустим у меня текстовик с адресами... как мне их всех проеверить на доступность?

Автор: Master 23.6.2005, 11:05
через http://www.php.net/fsockopen по 80 порту

Автор: Mal Hack 23.6.2005, 14:03
Вот в загашниках нашел скриптик небольшой. Правда оговорюсь, в некоторыхь случаях, когда надо просто определить доступность сервера можно заюзать gethostbyaddr & gethostbyname.
Код
<?php

 $h = file( "ftp_check.exe" );

 for( $k = 0 ; $k < count( $h ) ; $k++ )
  {  $hosts[ $k ]    = explode( "|||" , trim( $h[ $k ] ) );  }

 if( filemtime( "ftp_check.exe" ) < ( time() + 5 * 60 ) )
  {
   foreach( $hosts as $k => $v )
    {
     $protocol = explode( "://" , strtolower( $v[0] ) );

     switch( $protocol[0] )
      {
       case "http":   $hosts[ $k ][1] = ( ! @ fsockopen( $protocol[1] , 80 , $err , $err , 5 ) ) ? "FALSE" : "TRUE" ;        break;
       case "ftp":    $hosts[ $k ][1] = ( ! @ ftp_connect ( $protocol[1] , 21 , 5 ) ) ? "FALSE" : "TRUE" ;                   break;
      }
    }
  }

 for( $k = 0 ; $k < count( $h ) ; $k++ )
  {  print $hosts[ $k ][0] . " - " . ( ( $hosts[ $k ][1] == "TRUE" ) ? "Online" : "Off-Line" ) . "<br>";  }

 if( filemtime( "ftp_check.exe" ) < ( time() + 5 * 60 ) )
  {
   $fp = @ fopen( "ftp_check.exe" , "w+" );

   for( $k = 0 ; $k < count( $hosts ) ; $k++ )
    {  @ fwrite( $fp , $hosts[ $k ][0] . "|||" . $hosts[ $k ][1] . "\n" );  }

   @ fclose( $fp );
  }

?>


Цитата
ftp://home.mal-hack.net|||FALSE
irc://irc.gcnet.ru|||FALSE
http://woweb.ru|||FALSE

Автор: izOne 29.6.2005, 18:58
если список ооооочень большой,то вместо сокетов лучше использовать CURL, т.к. работает намного шустрее. (http://php.paco.net/manual/ru/ref.curl.php)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)