Verificar se um site ou página existe e permite ser acessado

Maneira de verificar se uma página está acessível ou não, ou seja, online ou ofline, existe ou inexistente.

Para criar links com mais tranqüilidade eu queria um script para ver se uma página de site ou blog podia ser acessada, se ela não estivesse com problema de algum erro, 404 por ser removida, ou outro, até mesmo site que tivesse deixado sido excluído, duas coisas bem comuns hoje. Encontrei no Scriptbrasil.com.br um script quase perfeito para isso, fiz algumas modificações nele, mas, se allow_url_fopen estiver desabilitada nas configurações do seu servidor, aí o script talvez não funcionará.
<?php

$Url = ("http://meuphpbasico.blogspot.com/2012/10/fazer-direcionamento-301-em-php-simples.html");

@$ChecarUrl = fopen($Url,"r");

if($ChecarUrl){//Se verificado e existente

$UrlChecada = "A página ".$Url." está ativa";
}else{//Se não conseguir verificar ou não existir

$UrlChecada = "Não conseguimos verificar ".$Url;
};

echo $UrlChecada;
?>

Uso de verificação de Url para link de redirecionamento

Um uso bem util seria para criar links externos, ou seja, para outros sites e assim evitar links quebrados, já que alguns sites ou páginas são excluídos, aí o que aconteceria seria o redirecionamento apenas se a página existir, se ela estiver indisponível você pode dar a opção da pessoa visitar a página inicial de seu site, pesquisar, prosseguir mesmo assim, etc...

Assim você evita links quebrados que prejudicam seu site perante sites de busca e aos olhos do visitante que invés de ir para uma página não encontrada tem a oportunidade de continuar no seu site.

checa-direciona.php

<?php
//recebe a url que será testada e para onde irá se correta
$Url = $_GET['go'];

@$ChecarUrl = fopen($Url,"r");
if($ChecarUrl){//Se verificado e existente

header("HTTP/1.1 301 Moved Permanently");
header("Location: $Url");

}else{//Se não conseguir verificar ou não existir

$UrlChecada = "Não conseguimos verificar ".$Url."<br>Você quer <a href='http://meuphpbasico.blogspot.com.br'>ir a página inicial, clique aqui</a><br>Quer prosseguir a página não detectada <a href='".$Url."' rel='nofollow'>clique aqui</a>";
};

echo $UrlChecada;
?>


Aí bastaria criar um link para essa página que ela checaria e faria o redirecionamento, exemplo:
http://MEU-SITE.com/checa-direciona.php?go=http://meuphpbasico.blogspot.com

Com um pouco mais de criatividade é possível até tirar mais proveito desse tipo de página, caso haja uma página não encontrada, algum tipo de monitoramento, incluir algum anúncio...

Por medida de segurança, talvez seja aconselhável algum filtro para o valor recebido via GET antes de usar ele, mas o intuito desse post é apenas demonstrar a principal característica ou função do script.

A arroba @ no casos acima são para evitar os tipos de mensagem quando a página não existir:

Warning: fopen() [function.fopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/0000/html/my.php on line 14

Warning: fopen(http://www.meu-site-xx.com) [function.fopen]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/xxx/html/ver/x.php on line

Warning: fopen(http://meu-site-xx.com) [function.fopen]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/00000/html/...

Sem comentários:

Enviar um comentário