Accueil > Tutoriels pour Webmasters > [cURL] Lire le header d'une page

[cURL] Lire le header d'une page

PHP peut facilement ouvrir une page web grâce à la bibliothèque cURL. Cette dernière est parfois désactivé chez certains hébergeurs (souvent les hébergeurs gratuits) mais sinon elle est très facile à utiliser. Ce tutoriel va exploiter cURL pour lire l'entête d'une page web. C'est par exemple très pratique pour connaître le code HTTP d'une page web.

Outil pour voir l'entête HTTP

Avant de commencer, vous pouvez avoir un aperçu de ce que vous serez capable de faire à la fin de ce tutoriel. Pour cela il vous suffit de tester l'outil "analyser l'entête HTTP d'une page".

Prérequis

Ce tutoriel nécessite des connaissances en PHP. Si vous n'en avez pas mais que vous souhaitez tout de même poursuivre ce tutoriel, je vous recommande la lecture de ces deux tutoriels de bases:

Code PHP

Le code nécessaire pour afficher le header d'une page web est assez simple. Il vous suffit de créer une page PHP et d'y insérer le code suivant en remplaçant http://www.example.com par l'adresse de votre choix. L'ensemble du code est commenté pour une meilleure compréhension.

  1. <?php
  2. // Initialiser cURL
  3. $curl = curl_init();
  4. // Définir l'adresse à ouvrir
  5. curl_setopt($curl, CURLOPT_URL, "http://www.example.com/");
  6. // Activer la visualisation du header
  7. curl_setopt($curl, CURLOPT_HEADER, true);
  8. // Exécuter
  9. $result = curl_exec($curl);
  10. // Fermer pour libérer des ressources systèmes
  11. curl_close($curl);
  12. // Afficher le header
  13. echo $result;
  14. ?>

Puisque le code est commenté, je ne prend pas la peine de l'expliquer d'avantage. Il faut toutefois savoir que ce code est assez simple et qu'il y a des spécificité au cas où vous souhaitez voir le header d'une page qui commence par "https" ou alors si vous utilisez un proxy (c'est le cas par exemple pour accéder à internet dans certaines universités).

Exemple de header retourné

Le code présenté sur ce tutoriel permet de retourner un header qui pourrait ressembler à ceci par exemple:

Code:
HTTP/1.1 200 OK
Date: Fri, 18 Feb 2011 21:31:14 GMT
Server: Apache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
X-Powered-By: PHP/5.2.17
Set-Cookie: PHPSESSID=2ecad0a895a7bc2d51fe704f886164bd; path=/; domain=.infowebmaster.fr
Set-Cookie: pseudo=deleted; expires=Thu, 18-Feb-2010 21:31:13 GMT
Set-Cookie: infowebmaster_connexion=deleted; expires=Thu, 18-Feb-2010 21:31:13 GMT
Transfer-Encoding: chunkedContent-Type: text/html

Dans cet exemple il s'agit du header de la page http://www.infowebmaster.fr.