Informática Numaboa - Tutoriais e Programação
Weblinks com checagem
| Sab 18 Out 2008 00:00 | 
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:43
- Autor: vovó Vicki
- Acessos: 9063
Pagina 2 de 3
Bem, se a função foi chamada, então precisamos colocá-la em algum lugar. Coloquei-a no final do arquivo. Observe que a função leva como parâmetro o objeto $item. Isto é necessário para que possamos acessar alguns atributos deste objeto como, por exemplo, a URL.
 ';
      } else {
         echo '
';
      } else {
         echo ' ';
      }
      return;
   }
   $url = $item->url;
   if( ( !eregi( "http", $url ) ) && ( !eregi( "https", $url ) ) ){
      $url = 'http://' . $url;
   }
   $urlArray = parse_url( $url );
   $timeout = 7;
   $return['code'] = '';
   $return['status'] = '';
   if( $urlArray['scheme'] == 'http' ) {
      $urlArray['port'] = 80;
      $sock = @fsockopen( $urlArray['host'], $urlArray['port'], $errnum, $errstr, $timeout );
   } else if( $urlArray['scheme'] == 'https' ) {
      $urlArray['port'] = 443;
      $sock = @fsockopen( $urlArray['host'], $urlArray['port'], $errnum, $errstr, $timeout );
   } else {
      echo '
';
      }
      return;
   }
   $url = $item->url;
   if( ( !eregi( "http", $url ) ) && ( !eregi( "https", $url ) ) ){
      $url = 'http://' . $url;
   }
   $urlArray = parse_url( $url );
   $timeout = 7;
   $return['code'] = '';
   $return['status'] = '';
   if( $urlArray['scheme'] == 'http' ) {
      $urlArray['port'] = 80;
      $sock = @fsockopen( $urlArray['host'], $urlArray['port'], $errnum, $errstr, $timeout );
   } else if( $urlArray['scheme'] == 'https' ) {
      $urlArray['port'] = 443;
      $sock = @fsockopen( $urlArray['host'], $urlArray['port'], $errnum, $errstr, $timeout );
   } else {
      echo ' ';
   }
   if( !isset( $sock ) || $sock === false || $sock == "" ) {
      echo '
';
   }
   if( !isset( $sock ) || $sock === false || $sock == "" ) {
      echo ' ';
   }
   // HTTP use HEAD Method
   getHTTP($sock, $urlArray, 'HEAD', $return, $timeout);
   @fclose( $sock );
   if ($return['code'] == '405') {
      // HTTP "HEAD" não aceito ou em Error => usar método "TRACE"
      $sock = @fsockopen($urlArray['host'], $urlArray['port'],
         $errnum, $errstr, $timeout ); // Definir espera em segundos para proteger o socket
      getHTTP($sock, $urlArray, 'TRACE', $return, $timeout);
      @fclose( $sock );
   }
   if (!$return['code'] || $return['code'] >= '400' ) {
      // HTTP nada retornou com "HEAD" ou "TRACE"
      // ou método não permitido => usar método "GET"
      $sock = @fsockopen($urlArray['host'], $urlArray['port'], $errnum,
         $errstr, $timeout); // Espera em segundos para proteger o socket
      getHTTP($sock, $urlArray, 'GET', $return, $timeout);
      @fclose( $sock );
   }
   if (!$return['code']) {
      $return['code'] = '404';
      $return['status'] = "Página não encontrada Erro 404 (No code returned)";
   }
   $model =& JModel::getInstance('category', 'weblinksmodel');
   if( $return['code'] != '200' ) {
      echo '
';
   }
   // HTTP use HEAD Method
   getHTTP($sock, $urlArray, 'HEAD', $return, $timeout);
   @fclose( $sock );
   if ($return['code'] == '405') {
      // HTTP "HEAD" não aceito ou em Error => usar método "TRACE"
      $sock = @fsockopen($urlArray['host'], $urlArray['port'],
         $errnum, $errstr, $timeout ); // Definir espera em segundos para proteger o socket
      getHTTP($sock, $urlArray, 'TRACE', $return, $timeout);
      @fclose( $sock );
   }
   if (!$return['code'] || $return['code'] >= '400' ) {
      // HTTP nada retornou com "HEAD" ou "TRACE"
      // ou método não permitido => usar método "GET"
      $sock = @fsockopen($urlArray['host'], $urlArray['port'], $errnum,
         $errstr, $timeout); // Espera em segundos para proteger o socket
      getHTTP($sock, $urlArray, 'GET', $return, $timeout);
      @fclose( $sock );
   }
   if (!$return['code']) {
      $return['code'] = '404';
      $return['status'] = "Página não encontrada Erro 404 (No code returned)";
   }
   $model =& JModel::getInstance('category', 'weblinksmodel');
   if( $return['code'] != '200' ) {
      echo ' ';
      $model->setCheck( $item->id, 0 );
   } else {
      echo '
';
      $model->setCheck( $item->id, 0 );
   } else {
      echo ' ';
      $model->setCheck( $item->id, 1 );
   }
}
';
      $model->setCheck( $item->id, 1 );
   }
}Esta função chama uma outra, a function getHTTP. Coloquei-a logo a seguir no final do mesmo arquivo:
 
				
 
 
