Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

new

Verificar se uma URL existe

Recommended Posts

Ola pessoar, sou novo em php e estou precisando saber qual comando uso para saber se uma url esta online ou nao, to tentando tentando e nao consigo...Preciso testar se uma url esta on-line - ja que esta nao fica todo tempo online - Se sim eu direcionaria para a mesma; se nao eu redirecionaria para outo lugar. Sera que tem como?Tentei assim, nao da; este file_exists e so para arquivos ne...<?phpif (file_exists("http://www.site.br")) {header("Location:http://www.site.br");} else {header("Location:off_line.htm");}?>Se alguem puder me dar um empurraozinho eu agradeco :)...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoar, sou novo em php e estou precisando saber qual comando uso para saber se uma url esta online ou nao, to tentando tentando e nao consigo...

 

Preciso testar se uma url esta on-line - ja que esta nao fica todo tempo online - Se sim eu direcionaria para a mesma; se nao eu redirecionaria para outo lugar. Sera que tem como?

 

Tentei assim, nao da; este file_exists e so para arquivos ne...

 

<?php

if (file_exists("http://www.site.br")) {

header("Location:http://www.site.br");

} else {

header("Location:off_line.htm");

}?>

 

 

Se alguem puder me dar um empurraozinho eu agradeco :) ...

faca o seguinte kra, use esse seu script, mas no lugar de apontar apenas o DNS (http://www.site.com.br) coloca algum arquivo dentro do host, exemplo:

 

PHP [/tr][tr]

if(file_exists("http://www.meusite.com.br/index.php")) {

echo "server ON";

} else {

echo "server OFF";

}

[/tr]

 

eu n testei, mais eu acho q isso pega ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

faca o seguinte kra, use esse seu script, mas no lugar de apontar apenas o DNS (http://www.site.com.br) coloca algum arquivo dentro do host, exemplo:

 

PHP [/tr][tr]

if(file_exists("http://www.meusite.com.br/index.php")) {

echo "server ON";

} else {

echo "server OFF";

}

[/tr]

 

eu n testei, mais eu acho q isso pega ;)

Tentei assim tbem... mas num funfa...

Nao tem otro comando? acho que 'file_exists' e so para arquivos nao e?

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, depois de varias tentativas eu arrumei um geito aki, n eh 100%, mais da pra usa:

 

primeiro passo, no server, coloca o arquivo verificador.txt

 

o conteudo desse arquivo deve ser apenas o seguinte:

 

servidor online

 

pronto, o 1 passo ja foi, agora vamos ao PHP

 

PHP [/tr][tr]

$arquivo = "http://www.meusite.com.br/verificador.txt";

$handle = @fopen($arquivo, "rb");

$cont = @fread($handle, 100);

 

if($cont == "servidor online") {

echo "Server ON";

} else {

echo "Server OFF";

}

[/tr]

 

esse script verifica perfeitamente se o server esta online, soh q ele n verifica arquivos expecificos, mas para o seu caso acho q isso da ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

se alguem souber como verifica um arquivo, posta ai valewobs: vale lembrar que varios servidores, ao dar arquivo não encontrado, redirecionam para uma pagina de erro, e o fread() do PHP, le essa pagina de erro caso o arquivo não seja encontrado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow boa mesmo kra!!!

 

Mas ve só, ele so quer funfa se o 'verificador.txt' que esteja hospedado no mesmo servidor, jah no meu caso eu teria que checar um outro sevidor, então quando coloco pra checar tipo 'http://www.outo_serv.com.br/verificador.txt' ele da sempre off, mesmo estando online... ve so os teste...

 

No mesmo serv - assim funfa:

http://icysoul.webcindario.com/check7.php

 

Ja em outro serv...

http://icysoul.webcindario.com/check6.php

 

Testei em outros servidores e da na mesma...

 

Mas valew mesmo kra; de qualquer forma vou guardar esse que tenho certeza me sera util ainda!!!! achei super interessante!!!

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow boa mesmo kra!!!Mas ve só, ele so quer funfa se o 'verificador.txt' que esteja hospedado no mesmo servidor, jah no meu caso eu teria que checar um outro sevidor, então quando coloco pra checar tipo 'http://www.outo_serv.com.br/verificador.txt' ele da sempre off, mesmo estando online... ve so os teste...No mesmo serv - assim funfa:http://icysoul.webcindario.com/check7.phpJa em outro serv...http://icysoul.webcindario.com/check6.phpTestei em outros servidores e da na mesma...Mas valew mesmo kra; de qualquer forma vou guardar esse que tenho certeza me sera util ainda!!!! achei super interessante!!!Valew

q estranho kra, aki o script q eu passei funciono legal, lendo o arquivo de outro server mesmo (fui do localhost pro kit.net), ai eu ja num sei +hehehee

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí, cara...tem uma forma sim...

agora as formas que vocês estão fazendo estão erradas... file_exists() não trabalha com arquivos remotos, logo, você não tem como verificar se esse arquivo existe ou não...

E se você quiser verificar se o endereço http://www.uol.com.br/ não tem como, pois você precisaria que o arquivo verifica.txt estivesse lá pra você pegar... vou te dar duas sugestões, aí vai:

 

Primeira: Dê uma olhada na documentação de link() em php.net, não sei se vai funcionar, mas veja lá.

 

Segunda:

PHP [/tr][tr]

if(fopen("http://www.uol.com.br","r+"))

{

echo "ON";

}

else

{

echo "OFF";

}

[/tr]

 

Assim dá certo, faça o teste e poste as bronncas! Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí, cara...tem uma forma sim...

agora as formas que vocês estão fazendo estão erradas... file_exists() não trabalha com arquivos remotos, logo, você não tem como verificar se esse arquivo existe ou não...

E se você quiser verificar se o endereço http://www.uol.com.br/ não tem como, pois você precisaria que o arquivo verifica.txt estivesse lá pra você pegar... vou te dar duas sugestões, aí vai:

 

Primeira: Dê uma olhada na documentação de link() em php.net, não sei se vai funcionar, mas veja lá.

 

Segunda:

PHP [/tr][tr]

if(fopen("http://www.uol.com.br","r+"))

{

echo "ON";

}

else

{

echo "OFF";

}

[/tr]

 

Assim dá certo, faça o teste e poste as bronncas! Valeu

bom kra, valew a intencao mais esse seu ai tb n pega...

 

vou explicar porque:

 

varios servidores (como o kit.net) tem um pagina pré-programada para ser executada caso de pagina não encontrada, e qdo o servidor esta desse geito, o PHP akba lendo esse arquivo pré-programado, e assim ele interpreta que o arquivo foi encontrado, mesmo q ele n tenha sido...

 

isso aki ta se tornando um problema serio viu :P

 

alguem ajuda aki!!!

 

obs: a função link() não tem suporte a arquivos remotos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae gente...

 

Olha depois de muito pesquisar, eu consegui; + na base da tentativa e erro mesmo, pq como eu disse eu to comecano a aprende agora, num manjo nada inda rsrs...

 

Por isso spero que vcs nao riam nao, to te com vergonha de mostrar o script aqui, ate pq nao sei se essa seria a forma correta de se fazer; bom enfim, peco por favor para corrigirem meus erros ae, preu ter certeza que posso usar o script na boa!

 

PHP [/tr][tr]

<?php

 

$fp = fsockopen("www.meuserv.net", 8080, $errno, $errstr, 15);

 

if (!$fp) {

 

?>

 

<script language="JavaScript">

<!--

window.location.href="http://host_qualquer/off_line.htm";

//-->

</script>

 

<?php

 

} else {

 

?>

 

<script language="JavaScript">

<!--

window.location.href="http://meuserv.net/";

//-->

</script>

 

<?php

 

}

 

?>

[/tr]

 

1: Usei js pra fazer a redirecao pq tive problemas qdo tentei fazer em php - header("Location: minha_url) - Se alguem souber como posso consertar...

Warning: Cannot modify header information - headers already sent by (output started at /home2/www/html/tserv/check39.php:3) in /home2/www/html/tserv/check39.php on line 9

 

2: Na linha 3 eu defini um timeout de 15 seg, ja que se deixo sem definir ele fica mo cara tentando conectar ate exibir a pagina de off_line. Porem como faco pra definir um timeout sem precisar colocar as veriaveis '$errno, $errstr,' ja que nao vou utiliza-las... eu nao entendi muito bem isso...

 

Bom e isso ae, peco ajuda de vcs para corrigir o que eu tiver feito de bobagem ae...

 

Valew!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal ninguem postou...Ke dizer ki ta bom assim mesmo o script?E sobre o timeout, tenho mesmo que deixar aquelas variaveis la, mesmo sem usalas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso... link() não dá suporte a arquivos remotos, eu to ligado... na realidade, eu queria colocar linkinfo(), mas é que eu não tava lembrado... Dê uma olhada na documentação de linkinfo().

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]

<?php

 

if (!fsockopen("www.meuserv.net", 8080, $errno, $errstr, 15))

{

header("location:http://host_qualquer/off_line.htm");

}else{

header("location:http://meuserv.net/");

}

?>

[/tr]

 

Não testei se funciona, em relação ao fsockopen, por sinal, não conhecia essa função. Mas em relação ao header do php, se deu erro é pq voce deixou algum espaço em branco antes do "<?".

 

Falou, cara!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.