Http responses – php
Il peut s’avérer intéressant de récupérer le code renvoyé dans la réponse HTTP dans un script.
Quelques codes comme exemples :
- 200: OK
- 302: Déplacé mais trouvé
- 403: Accès interdit
- 404: Page Introuvable
- 500: Erreur serveur
Voici comment faire (je vous fourni un bout de code commenté, des explications plus complètes se trouvent en dessous de ce dernier) :
function ch_url($urlParam){
// On récupère l'ancien level d'error reporting
$levelBefore = error_reporting();
//Le fopen d'une url sur un serveur qui n'existerait plus par exemple fait un très moche message d'erreur, on les déactive donc
error_reporting(0);
//Ouverture de la connexion
if (!$fp = fopen($urlParam, 'r')) {
error_reporting($levelBefore);
return "404";
}
//On récupère les données du stream
$meta = stream_get_meta_data($fp);
//On prend la donnée qui nous intéressé dans l'objet et on la transforme comme on veut (voir si dessous pour l'explication)
$return = explode(' ',$meta['wrapper_data'][0]);
//On ferme proprement la connexion
fclose($fp);
//On replace le niveau d'erreur
error_reporting($levelBefore);
//Et on renvoie le résultat
return $return[1];
}
/*On fait s'afficher la réponse de notre fonction pour une url étant passé par GET
(script.php?url=http://lgnap.helpcomputer.org/ par exemple)
*/
echo ch_url($_GET['url']);