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: 9156
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 '
';
}
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 '
';
}
// 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, 1 );
}
}Esta função chama uma outra, a function getHTTP. Coloquei-a logo a seguir no final do mesmo arquivo:


