Comprobar si una url existe con PHP
Esto me ha servido mucho y gracias a la gente de http://wordpresstutoriales.com/ por su publicación que les comparto.
A veces nos encontramos con la necesidad de testear si una url existe y esta disponible antes de proceder a otras acciones con PHP, hay varios modos de hacerlo una es con PHP y Curl y otra usando la funcion get_headers(), aunque hay otras maneras. A continuación podeis ver varios ejemplos de codigo:
PHP + CURL:
<?php
$url = 'http://wordpresstutoriales.com/';
function url_exists($url) {
$ch = @curl_init($url);
@curl_setopt($ch, CURLOPT_HEADER, TRUE);
@curl_setopt($ch, CURLOPT_NOBODY, TRUE);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$status = array();
preg_match('/HTTP\/.* ([0-9]+) .*/', @curl_exec($ch) , $status);
return ($status[1] == 200);
}
echo url_exists($url)? 'existe' : 'no existe';
?>
USANDO get_headers()
<?php
$url = 'http://wordpresstutoriales.com/';
function url_exists($url) {
$h = get_headers($url);
$status = array();
preg_match('/HTTP\/.* ([0-9]+) .*/', $h[0] , $status);
return ($status[1] == 200);
}
echo url_exists($url)? 'existe' : 'no existe';
?>
USANDO file_exists()
<?php
$nombre_fichero = 'http://wordpresstutoriales.com/index.php';
if (file_exists($nombre_fichero)) {
echo "El fichero $nombre_fichero existe";
} else {
echo "El fichero $nombre_fichero no existe";
}
?>
Otro método alternativo
<?php
$url = 'http://wordpresstutoriales.com/';
function isURL($url){
$pattern='|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
if(preg_match($pattern, $url) > 0) return true;
else return false;
}
?>
Y para terminar aqui teneis esta función con fopen()
<?php
function url_existe($url)
{
$handle = @fopen($url, "r");
if ($handle == false)
return false;
fclose($handle);
return true;
}
?>
La usaríamos de este modo:
<?php
$url = "http://wordpresstutoriales.com/index.php";
if (url_existe($url))
{
echo "La URL existe";
}
else
{
echo "La URL no existe"
}
?>
Para comprobar varias url podemos usar:
<?php
$url1=url("http://seeuseo.com");
$url2=url("http://webeixon.com");
if($url1){
echo "Se puede usar la url1";
}else{
if($url2){
echo "No se puede usar la url1, pero si la url2";
}else{
echo "No se ha podido usar ninguna de las url";
}
}
function url($url){
$fp=@fopen($url,"r");
if($fp){
return true;
}else{
return false;
}
@fclose($fp);
}
?>
Si te ha servido de ayuda porfavor valora este post. Gracias!
URL:http://wordpresstutoriales.com/comprobar-si-una-url-existe-con-php/
Comentarios
Publicar un comentario