Aprender a verificar su una URL es válida, es decir, si dada una dirección verificamos la existencia de esa URL, usando la función fopen de PHP.
En este artículo vamos a crear una función para comprobar si una URL existe. Lo haremos con PHP y apoyados en una función que nos permite abrir archivos de texto. Es verdad que la URL es un archivo de un servidor remoto, pero es un archivo de texto al fin y al cabo y con PHP lo podemos abrir para realizar su lectura programáticamente.
Ya hemos visto las funciones de gestión de archivos más comúnmente utilizadas en PHP. Sirvámonos de la más clásica de todas ellas, fopen, para crear un script que verifique la existencia de una URL.
Este tipo de script puede ser utilizado para múltiples propósitos: Detectar si los enlaces están rotos, verificar una etapa de inscripción en un formulario...
En este caso, hemos simplificado al máximo su contenido de manera a poner evidencia su funcionamiento. Otro tipo de mejoras tales como la verificación de la extensión del archivo (.asp, .php, ...) o del protocolo de transferencia (http, ftp...) pueden ser introducidas afín de personalizar su uso para distintas aplicaciones.
A continuación podéis ver como quedaría el script:
<?php
function verificar_url($url)
{
//abrimos el archivo en lectura
$id = @fopen($url,"r");
//hacemos las comprobaciones
if ($id) $abierto = true;
else $abierto = false;
//devolvemos el valor
return $abierto;
//cerramos el archivo
fclose($id);
}
?>
<html>
<head>
<title>Verificacion de URL</title>
</head>
<body>
<?php
if (!isset($_POST["url"]))
{
?>
<form action="enlace.php" method="post">
Indica tu URL:<br>
<input type="Text" size="25" maxlength="100" name="url" value="http://">
<input type="Submit" value="Verificar!"
</form>
<?php
}
else
{
$url = $_POST["url"]
$abierto = verificar_url($url);
if ($abierto) {
echo "La URL existe!";
} else {
echo "La URL no existe o es inaccesible...";
}
}
?>
</body>
</html>
Hemos introducido en el mismo script que se encarga de verificar la URL el formulario que se encarga de recogerla. Así, podemos dividir el script en dos partes: Una primera que se encarga de recoger la URL en un campo texto y una segunda que es la que verdaderamente evalúa la existencia de la URL.
Para hacer más aplicable el script hemos dejado la evaluación propiamente dicha en forma de función que podréis copiar y pegar en vuestra librería particular. Como podéis ver, el modo de operar es extremadamente sencillo:
- Abrimos el archivo remoto por medio de la función fopen en modo solo lectura. A notar que precediendo a la función fopen hemos introducido un símbolo arroba @ cuyo cometido es el de ignorar el posible error producido por la sentencia. Esto nos evita ver el mensaje de error que es mostrado cuando la URL no existe.
- Verificamos que el identificador de apertura $id no esta vacío. Es en este punto donde podemos implementar a nuestra función las mejoras de las que hemos hablado, las cuales le confieren la verdadera utilidad.
- Devolvemos un valor true o false dependiendo del éxito de la conexión.
Como podéis ver el script no reviste ninguna dificultad y puede sernos muy práctico.
Rubén Alvarez
Rubén es doctor en química y programador principalmente en sus ratos libres con...