¿Cómo verificar la existencia de URL en PHP?

La existencia de una URL se puede comprobar comprobando el código de estado en el encabezado de respuesta. El código de estado 200 es una respuesta estándar para requests HTTP exitosas y el código de estado 404 significa que la URL no existe.

Funciones utilizadas:

  • Función get_headers(): Obtiene todos los encabezados enviados por el servidor en respuesta a la solicitud HTTP.
  • Función strpos(): Esta función se utiliza para encontrar la primera aparición de una string en otra string.

Ejemplo 1: este ejemplo busca el código de estado 200 en el encabezado de respuesta. Si el código de estado es 200, indica que la URL existe; de ​​lo contrario, no existe.

<?php
  
// Initialize an URL to the variable
$url = "https://www.geeksforgeeks.org";
  
// Use get_headers() function
$headers = @get_headers($url);
  
// Use condition to check the existence of URL
if($headers && strpos( $headers[0], '200')) {
    $status = "URL Exist";
}
else {
    $status = "URL Doesn't Exist";
}
  
// Display result
echo($status);
  
?>

Producción:

URL Exist

Ejemplo 2: este ejemplo busca el código de estado 404 en el encabezado de respuesta. Si el código de estado es 404, indica que la URL no existe; de ​​lo contrario, existe la URL.

<?php
  
// Initialize an URL to the variable
$url = "https://www.geeksforgeeks.org";
  
// Use get_headers() function
$headers = @get_headers($url);
  
// Use condition to check the existence of URL
if($headers || strpos( $headers[0], '404')) {
    $status = "URL Doesn't Exist";
}
else {
    $status = "URL Exist";
}
  
// Display result
echo($status);
  
?>

Producción:

URL Doesn't Exist

Ejemplo 3: este ejemplo usa el método curl_init() para verificar la existencia de una URL.

<?php
  
// Initialize an URL to the variable
$url = "https://www.geeksfgeeks.org";
  
// Use curl_init() function to initialize a cURL session
$curl = curl_init($url);
  
// Use curl_setopt() to set an option for cURL transfer
curl_setopt($curl, CURLOPT_NOBODY, true);
  
// Use curl_exec() to perform cURL session
$result = curl_exec($curl);
  
if ($result !== false) {
      
    // Use curl_getinfo() to get information
    // regarding a specific transfer
    $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); 
    
    if ($statusCode == 404) {
        echo "URL Doesn't Exist";
    }
    else {
        echo "URL Exist";
    }
}
else {
    echo "URL Doesn't Exist";
}
   
?>

Producción:

URL Doesn't Exist

Publicación traducida automáticamente

Artículo escrito por aman neekhara y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *