7.8 Liste des protocoles supportés
7 Annexes
Manuel PHP
. Système de fichiers . Socket ->HTTP et HTTPS . FTP et FTPS . Flux d'entrée/sortie . Flux compressés . Shell sécurisé 2 . Flux Audio . Gestionnaire de flux
|
7.8.3 HTTP et HTTPS
PHP 3, PHP 4, PHP 5.
https://
depuis PHP 4.3.0
-
http://example.com
-
http://example.com/file.php?var1=val1&var2=val2
-
http://user:motdepasse@example.com
-
https://example.com
-
https://example.com/file.php?var1=val1&var2=val2
-
https://user:motdepasse@example.com
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.
Attention |
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 warnings.
A 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.
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), 0, 18) == 'location: ') { /* modification de $url avec la nouvelle URL */ $url = substr($response, 18); }
}
?>
|
Le flux donne l'accès au corps (
body
)
de la ressource. Les en-tê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.
|
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 |
Nom |
Utilisation |
Par défaut |
method
|
GET
,
POST
, ou
une autre méthode HTTP acceptée apr le serveur distant.
|
GET
|
header
|
Les autres en-têtes envoyés durant la requête. Les valeurs
de cette option remplaceront les valeurs déjà configurées
(comme
User-agent:
,
Host:
,
et
Authentication:
).
|
|
user_agent
|
Valeur à envoyer pour l'en-tête
User-Agent:
.
Cette valeur sera utilisée si un type de navigateur
n'est pas
spécifié dans l'option
de contexte
header
ci-dessus.
|
Directive dans le
php.ini
:
user_agent
.
|
content
|
D'autres données envoyées après les en-têtes. Typiquement,
utilisé pour placer les requêtes POST ou PUT.
|
|
proxy
|
URI du serveur de proxy.
(i.e.
tcp://proxy.example.com:5100
).
Les proxys HTTPS (via les proxys HTTP) ne fonctionnent qu'avec PHP 5.1.0
ou supérieur.
|
|
max_redirects
|
Le nombre maximum de redirection à suivre. Ajouté en PHP 5.1.0.
|
20 |
request_fulluri
|
Lorsque cette option vaut
TRUE
, l'URI entière sera utilisée lors
de la construction de la requête. (i.e.
GET http://www.example.com/path/to/file.html HTTP/1.0
).
Même si ce n'est pas la méthode standard, certains
proxies le requiert.
|
FALSE
|
Note | Options de contexte pour les sockets
Plusieurs options de contexte supplémentaires sont supportées
par le gestionnaire de transport
Pour les flux
http://
, voyez les options de
contexte du transport
tcp://
. Pour les flux
https://
, voyez les options de contexte
du transport
ssl://
.
|
|