Agence web et solutions IT, Experts Symfony contact@avanim-prod.com

Tester l’existance d’une URL en PHP

18 mai 2011 jravouna Symfony Étiquettes : , , 2 Comments

Pour tester l’existance d’une URL en PHP, deux solutions sont possibles. La première est de passer par CURL, la deuxième est d’utiliser les Header PHP.

De manière basique, une page éxistante renverra le code 200 OK alors qu’une page innexistante renverra le code 404 Page Not Found.

Voyons comment mettre cela en place.

1/ Methode Header

Voici le code à mettre dans votre method ou votre fonction :

$url = "http://www.domain.com/demo.jpg";
$headers = @get_headers($url);
if(strpos($headers[0],'404') === false)
{
  echo "URL Exists";
}
else
{
  echo "URL Not Exists";
}

2/ Méthode CURL

$url = "http://www.domain.com/demo.jpg";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_NOBODY, true);
$result = curl_exec($curl);
if ($result !== false)
{
  $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  if ($statusCode == 404)
  {
  	echo "URL Not Exists"
  }
  else
  {
     echo "URL Exists";
  }
}
else
{
  echo "URL not Exists";
}

2 Comments

  1. Naoki 3 années Répondre

    Plus fiable encore, la fonction get_headers renvoie false lorsqu’une erreur s’est produite, même si la page renvoie un code 404 par exemple. Donc, ce script suffit :


    if($headers = @get_headers($url))
    return true;

    return false;

  2. Breith 6 mois Répondre

    Sur la méthode CURL, Il manque un « point-virgule » à la ligne 10 ^^

    >>> echo « URL Not Exists »;

    Merci pour le poste 🙂