HTTP et HTTPS

PHP 4, PHP 5, PHP 6. https:// depuis PHP 4.3.0

  • http://example.com
  • http://example.com/file.php?var1=val1&var2=val2
  • http://user:[email protected]
  • https://example.com
  • https://example.com/file.php?var1=val1&var2=val2
  • https://user:[email protected]

Permet des acc�s en lecture uniquement, pour des fichiers accessibles sur le r�seau avec la m�thode GET de HTTP 1.0. Un en-t�te Host: est envoy� avec la requ�te, pour g�rer les h�tes virtuels, bas�s sur des noms. Si vous avez configur� une version de navigateur avec l'option user_agent dans votre fichier php.ini, ou via le contexte de flux, il sera aussi utilis� dans votre requ�te.

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez � la fin des donn�es. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les alertes. � partir de PHP 4.3.7, le bogue est d�tect� automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour cr�er une socket ssl://, vous devez vous occuper vous-m�me de supprimer l'erreur.

Les redirections sont support�es depuis PHP 4.0.5; si vous utilisez une version plus ancienne, vous devrez ajouter vous-m�me les slash finaux dans vos URL. S'il est important de conna�tre l'URL de la ressource qui vous a fourni le document, une fois que toutes les redirections ont �t� suivies, vous devez analyser les en-t�tes de r�ponses retourn�s par le flux.

Exemple #1 http:// et redirections

<?php
$url 
'http://www.example.com/redirecting_page.php';

$fp fopen($url'r');

/* Avant PHP 4.3.0 utilisez $http_response_header
   au lieu de stream_get_meta_data() */
$meta_data stream_get_meta_data($fp);
foreach(
$meta_data['wrapper_data'] as $response) {

  
/* Redirections? */
  
if (substr(strtolower($response), 010) == 'location: ') {
    
/* modification de $url avec la nouvelle URL */
    
$url substr($response18);
  }

}

?>

Le flux donne l'acc�s au corps (body) de la ressource. Les ent�tes sont stock�s dans la variable $http_response_header. Depuis PHP 4.3.0, les en-t�tes sont aussi accessibles avec la fonction stream_get_meta_data().

Les connexions HTTP sont en lecture seule. Vous ne pouvez pas �crire dans des fichiers ouverts via le protocole HTTP.

Note: HTTPS est support� depuis PHP 4.3, si vous avez compil� le support d'OpenSSL.

R�sum� des gestionnaires
Attribut Support�
Limit� par allow_url_fopen Oui
Autoris� en lecture Oui
Autoris� en �criture Non
Autoris� en ajout Non
Autorise les lectures / �critures simultan�es Non applicable
Supporte stat() Non
Supporte unlink() Non
Supporte rename() Non
Supporte mkdir() Non
Supporte rmdir() Non

Les en-t�tes personnalis�s peuvent �tre envoy�s avec une requ�te HTTP dans les versions ant�rieures � la version 5 en tirant avantage d'un effet de bord dans la gestion de la configuration INI de user_agent. D�finissez user_agent en n'importe quelle cha�ne valide (comme la cha�ne par d�faut, PHP/version) suivi d'un caract�re de retour chariot et d'un caract�re de nouvelle ligne, suivis des ent�tes additionnels. Cette m�thode fonctionne en PHP 4 ainsi que toutes les versions suivantes.

Exemple #2 Envoi d'en-t�tes personnalis�s avec une requ�te HTTP

<?php
ini_set
('user_agent'"PHP\r\nX-MyCustomHeader: Foo");

$fp fopen('http://www.example.com/index.php''r');
?>

�quivaut � la requ�te suivante :

GET /index.php HTTP/1.0
Host: www.example.com
User-Agent: PHP
X-MyCustomHeader: Foo