Verificar se a URL é válida com PHP
Essa função é muito útil para quem quer verificar se a URL existe no servidor remoto.
Basicamente ela instancia uma conexão na porta 80 e faz um GET na url, se retornar HTTP code 200 a url é válida.
Precisei dela um dia desses pois carregava fotos de produtos de um cliente em outro servidor dele, daí coloquei um diretório virtual das fotos no Apache e faço o teste para ver se a foto existe antes de escrevê-la na página.
Exemplo de carga da função
vUrlImagens = "http://177.1.1.1:81/imagens/";
$vFoto1= $vUrlImagens.'Foto1.jpg';
if (valida_url($vFoto1)) {
echo '<img src=" '.$vFoto1.' " width="174" height="197" border="1" alt="Foto1" />';
}
A função:
Copie o código abaixo, retirando os números de linha e bom proveito!!
Basicamente ela instancia uma conexão na porta 80 e faz um GET na url, se retornar HTTP code 200 a url é válida.
Precisei dela um dia desses pois carregava fotos de produtos de um cliente em outro servidor dele, daí coloquei um diretório virtual das fotos no Apache e faço o teste para ver se a foto existe antes de escrevê-la na página.
Exemplo de carga da função
vUrlImagens = "http://177.1.1.1:81/imagens/";
$vFoto1= $vUrlImagens.'Foto1.jpg';
if (valida_url($vFoto1)) {
echo '<img src=" '.$vFoto1.' " width="174" height="197" border="1" alt="Foto1" />';
}
A função:
Copie o código abaixo, retirando os números de linha e bom proveito!!
0| <?php
1|
2|
3|
4| // função valida_url
5| // retorno boolean
6| // parametro string
7| // desc Verifica se a URL é valida (HTTP-Code: 200)
8|
9|
10| function valida_url( $link )
11| {
12| $partes_url = @parse_url( $link );
13|
14| if ( empty( $partes_url["host"] ) ) return( false );
15|
16| if ( !empty( $partes_url["path"] ) )
17| {
18| $path_documento = $partes_url["path"];
19| }
20| else
21| {
22| $path_documento = "/";
23| }
24|
25| if ( !empty( $partes_url["query"] ) )
26| {
27| $path_documento .= "?" . $partes_url["query"];
28| }
29|
30| $host = $partes_url["host"];
31| $porta = $partes_url["port"];
32| // faz um (HTTP-)GET $path_documento em $host";
33|
34|
35| if (empty( $porta ) ) $porta = "80";
36| $socket = @fsockopen( $host, $porta, $errno, $errstr, 30 );
37| if (!$socket)
38| {
39| return(false);
40| }
41| else
42| {
43| fwrite ($socket, "HEAD ".$path_documento." HTTP/1.0\r\nHost: $host\r\n\r\n");
44| $http_response = fgets( $socket, 22 );
45|
46| $pos = null;
47| $pos = strpos($http_response, "200 OK");
48| if ( !empty($pos) )
49| {
50| fclose( $socket );
51| return(true);
52| }
53| else
54| {
55| //echo "HTTP-Response: $http_response<br>";
56| return(false);
57| }
58| }
59| }
60| ?>
1|
2|
3|
4| // função valida_url
5| // retorno boolean
6| // parametro string
7| // desc Verifica se a URL é valida (HTTP-Code: 200)
8|
9|
10| function valida_url( $link )
11| {
12| $partes_url = @parse_url( $link );
13|
14| if ( empty( $partes_url["host"] ) ) return( false );
15|
16| if ( !empty( $partes_url["path"] ) )
17| {
18| $path_documento = $partes_url["path"];
19| }
20| else
21| {
22| $path_documento = "/";
23| }
24|
25| if ( !empty( $partes_url["query"] ) )
26| {
27| $path_documento .= "?" . $partes_url["query"];
28| }
29|
30| $host = $partes_url["host"];
31| $porta = $partes_url["port"];
32| // faz um (HTTP-)GET $path_documento em $host";
33|
34|
35| if (empty( $porta ) ) $porta = "80";
36| $socket = @fsockopen( $host, $porta, $errno, $errstr, 30 );
37| if (!$socket)
38| {
39| return(false);
40| }
41| else
42| {
43| fwrite ($socket, "HEAD ".$path_documento." HTTP/1.0\r\nHost: $host\r\n\r\n");
44| $http_response = fgets( $socket, 22 );
45|
46| $pos = null;
47| $pos = strpos($http_response, "200 OK");
48| if ( !empty($pos) )
49| {
50| fclose( $socket );
51| return(true);
52| }
53| else
54| {
55| //echo "HTTP-Response: $http_response<br>";
56| return(false);
57| }
58| }
59| }
60| ?>
Comentários
Postar um comentário