http://
https://
http:// -- https:// — Accès aux URLs HTTP(s)
Description
Permet des accès, en lecture seule, à des fichiers accessibles via HTTP.
Par défaut, une requête HTTP 1.0 GET est utilisé.
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, elle sera aussi
incluse dans votre requête.
Le flux permet d'accéder au corps (body)
de la ressource. Les en-têtes sont stockés dans la variable
$http_response_header.
Si vous avez besoin de connaitre l'URL de la ressource
depuis laquelle votre document provient (après l'exécution
de toutes les redirections), vous devrez analyser la série
d'en-têtes retournés par le flux.
La directive from sera utilisée pour
l'en-tête From:
si elle a été définie, et non écrasée
par les Options et paramètres de contexte.
Utilisation
- http://example.com
- http://example.com/fichier.php?var1=val1&var2=val2
- http://user:password@example.com
- https://example.com
- https://example.com/fichier.php?var1=val1&var2=val2
- https://user:password@example.com
Options
Résumé de l'enveloppe
Attribut |
Supporté |
Restreint par allow_url_fopen |
Oui |
Autorise la lecture |
Oui |
Autorise l'écriture |
Non |
Autorise l'ajout |
Non |
Autorise la lecture et l'écriture simultanément |
N/A |
Support de la fonction stat() |
Non |
Support de la fonction unlink() |
Non |
Support de la fonction rename() |
Non |
Support de la fonction mkdir() |
Non |
Support de la fonction rmdir() |
Non |
Exemples
Exemple #1 Détecte la dernière URL après des redirections
<?php
$url = 'http://www.example.com/redirecting_page.php';
$fp = fopen($url, 'r');
$meta_data = stream_get_meta_data($fp);
foreach ($meta_data['wrapper_data'] as $response) {
/* Avons-nous été redirigés ? */
if (strtolower(substr($response, 0, 10)) == 'location: ') {
/* mise à jour de $url avec le chemin après redirection */
$url = substr($response, 10);
}
}
?>
Notes
Note:
HTTPS n'est supporté que si l'extension
openssl est active.
Les connexions HTTP sont en lecture seule ; l'écriture de données
ou la copie de fichier vers une ressource HTTP ne sont pas supportés.
L'envoi de requêtes POST et PUT,
par exemple, peut être effectué à l'aide des
contextes HTTP.