If you want to make outgoing http connections with php, concider the curl extension.
LIV. HTTP
Introduction
Cette extension HTTP fournit un jeu de fonctionnalités puissantes pour les applications PHP.
Il devient facile de gérer les URLs HTTP, les dates, les redirections, les en-têtes et les messages, de gérer les négociations avec les clients concernant le langage et les jeux de caractères, mais aussi d'envoyer des données arbitraires.
Elle fournit des fonctionnalités puissantes pour les requêtes, si elle est construite avec le support CURL. Les requêtes parallèles sont disponibles depuis PHP 5 et suivant.
En plus de la référence de l'API de ce manuel, vous pouvez trouver des informations sur l'installation et la configuration mais aussi quelles constantes sont prédéfinies, dans les sections suivantes :
| Installation |
| Configuration |
| Constantes globales |
Classes
| HttpMessage |
| HttpQueryString |
| HttpDeflateStream |
| HttpInflateStream |
| HttpRequest |
| HttpRequestPool |
| HttpResponse |
Fonctions
Fonctions internes
Les fonctions HTTP internes lisées sur cette page peuvent être trouvées dans la catégorie réseau.
Les fonctions suivantes ne nécessitent pas la présence du module HTTP : header(), headers_list(), headers_sent(), setcookie() et setrawcookie().
Divers
| http_build_cookie() |
| http_date() |
| http_get_request_body_stream() |
| http_get_request_body() |
| http_get_request_headers() |
| http_match_etag() |
| http_match_modified() |
| http_match_request_header() |
| http_support() |
Requêtes
- Table des matières
- Installation -- Installation et configuration de l'extension HTTP
- Configuration -- Directives de configuration du module http
- Constantes -- constantes prédéfinies du module HTTP
- HttpMessage -- CLasse HTTP Message
- HttpMessage::__construct -- Constructeur de la classe HttpMessage
- HttpMessage::fromString -- Crée un HttpMessage depuis une chaîne de caractères
- HttpMessage::toString -- Récupère la représentation du message sous la forme d'une chaîne de caractères
- HttpMessage::toMessageTypeObject -- Crée un objet HTTP en fonction du type de message
- HttpMessage::guessContentType -- Demande le type de contenu
- HttpMessage::detach -- Détache un HttpMessage
- HttpMessage::prepend -- Ajoute un message
- HttpMessage::reverse -- Renverse la chaîne du message
- HttpMessage::send -- Envoie le message
- HttpMessage::getParentMessage -- Récupère le message parent
- HttpMessage::getType -- Récupère le type du message
- HttpMessage::setType -- Définit le type de message
- HttpMessage::getHttpVersion -- Récupère la version HTTP
- HttpMessage::setHttpVersion -- Définit la version HTTP
- HttpMessage::getHeaders -- Récupère les en-têtes du message
- HttpMessage::getHeader -- Récupère les en-têtes
- HttpMessage::addHeaders -- Ajoute des en-têtes
- HttpMessage::setHeaders -- Définit les en-têtes
- HttpMessage::getBody -- Récupère le corps du message
- HttpMessage::setBody -- Définit le corps du message
- HttpMessage::getRequestMethod -- Récupère la méthode de la demande
- HttpMessage::setRequestMethod -- Définit la méthode de la demande
- HttpMessage::getRequestUrl -- Récupère l'URL de la demande
- HttpMessage::setRequestUrl -- Définit l'URL de la demande
- HttpMessage::getResponseCode -- Récupère le code réponse
- HttpMessage::setResponseCode -- Définit le code réponse
- HttpMessage::getResponseStatus -- Récupère le statut de la réponse
- HttpMessage::setResponseStatus -- Définit le statut de la réponse
- HttpQueryString -- Classe HTTPQueryString
- HttpQueryString::__construct -- Constructeur de la classe HttpQueryString
- HttpQueryString::singleton -- Récupère un instance simple de HttpQueryString
- HttpQueryString::get -- Récupère (une partie) de la requête
- HttpQueryString::mod -- Modifie la copie de la requête
- HttpQueryString::set -- Définit les paramètres de la requête
- HttpQueryString::toArray -- Récupère la requête sous la forme d'un tableau
- HttpQueryString::toString -- Récupère la requête
- HttpQueryString::xlate -- Modifie le jeu de caractères de la requête
- HttpDeflateStream -- Classe de compression du flux HTTP
- HttpDeflateStream::__construct -- Constructeur de la classe HttpDeflateStream
- HttpDeflateStream::update -- Met à jour le flux compressé
- HttpDeflateStream::flush -- Envoi un flux compressé
- HttpDeflateStream::finish -- Finalise un flux compressé
- HttpInflateStream -- Décompression d'un flux HTTP
- HttpInflateStream::__construct -- Constructeur de la classe HttpInflateStream
- HttpInflateStream::update -- Met à jour un flux décompressé
- HttpInflateStream::flush -- Envoi un flux décompressé
- HttpInflateStream::finish -- Finalise un flux décompressé
- HttpRequest -- Classe HTTPRequest
- HttpRequest::addCookies -- Ajoute des cookies
- HttpRequest::addHeaders -- Ajoute des en-têtes
- HttpRequest::addPostFields -- Ajoute des champs POST
- HttpRequest::addPostFile -- Ajoute un fichier en POST
- HttpRequest::addPutData -- Ajoute des données PUT
- HttpRequest::addQueryData -- Ajoute des paramètres à une requête
- HttpRequest::addRawPostData -- Ajoute une ligne de données POST
- HttpRequest::addSslOptions -- Ajoute des options SSL
- HttpRequest::clearHistory -- Efface l'historique
- HttpRequest::__construct -- Constructeur de HttpRequest
- HttpRequest::enableCookies -- Active les cookies
- HttpRequest::getContentType -- Récupère le type de contenu
- HttpRequest::getCookies -- Récupère les cookies
- HttpRequest::getHeaders -- Récupère les en-têtes
- HttpRequest::getHistory -- Récupère l'historique
- HttpRequest::getMethod -- Récupère une méthode
- HttpRequest::getOptions -- Récupère les options
- HttpRequest::getPostFields -- Récupère les champs POST
- HttpRequest::getPostFiles -- Récupère les fichiers POST
- HttpRequest::getPutData -- Récupère des données PUT
- HttpRequest::getPutFile -- Récupère un fichier PUT
- HttpRequest::getQueryData -- Récupère les données de la requête
- HttpRequest::getRawPostData -- Récupère les données POST
- HttpRequest::getRawRequestMessage -- Récupère le message de la requête
- HttpRequest::getRawResponseMessage -- Récupère le message de réponse
- HttpRequest::getRequestMessage -- Récupère le message de la requête
- HttpRequest::getResponseBody -- Récupère le coprs de la réponse
- HttpRequest::getResponseCode -- Récupère le code de la réponse
- HttpRequest::getResponseCookies -- Récupère la réponse des cookies
- HttpRequest::getResponseData -- Récupère les données de la réponse
- HttpRequest::getResponseHeader -- Récupère les en-têtes de la réponse
- HttpRequest::getResponseInfo -- Récupère les informations de la réponse
- HttpRequest::getResponseMessage -- Récupère le message de la réponse
- HttpRequest::getResponseStatus -- Récupère le statut de la réponse
- HttpRequest::getSslOptions -- Récupère les options SSL
- HttpRequest::getUrl -- Récupère l'url
- HttpRequest::resetCookies -- Efface les cookies
- HttpRequest::send -- Envoi une requête
- HttpRequest::setContentType -- Définit le type de contenu
- HttpRequest::setCookies -- Définit un cookie
- HttpRequest::setHeaders -- Définit un en-tête
- HttpRequest::setMethod -- Définit la méthode
- HttpRequest::setOptions -- Définit des options
- HttpRequest::setPostFields -- Définit les champs POST
- HttpRequest::setPostFiles -- Définit les fichiers POST
- HttpRequest::setPutData -- Définit les données PUT
- HttpRequest::setPutFile -- Définit le fichier PUT
- HttpRequest::setQueryData -- Définit les données de la requête
- HttpRequest::setRawPostData -- Définit les données POST
- HttpRequest::setSslOptions -- Définit les options SSL
- HttpRequest::setUrl -- Définit l'URL
- HttpRequestPool -- Classe HTTPRequestPool
- HttpRequestPool::attach -- Attache un objet HttpRequest
- HttpRequestPool::__construct -- Constructeur de la classe HttpRequestPool
- HttpRequestPool::__destruct -- Déstructeur de la classe HttpRequestPool
- HttpRequestPool::detach -- Détache un objet HttpRequest
- HttpRequestPool::getAttachedRequests -- Récupère les requêtes attachées
- HttpRequestPool::getFinishedRequests -- Récupère les requêtes terminées
- HttpRequestPool::reset -- Efface la file d'attente des requêtes
- HttpRequestPool::send -- Envoie toutes les requêtes
- HttpRequestPool::socketPerform -- Effectue une action sur le socket
- HttpRequestPool::socketSelect -- Sélectionne un socket
- HttpResponse -- Classe HTTPResponse
- HttpResponse::capture -- Capture la sortie du script
- HttpResponse::getBufferSize -- Récupère la taille du buffer
- HttpResponse::getCacheControl -- Récupère l'en-tête Cache-Control
- HttpResponse::getCache -- Récupère le cache
- HttpResponse::getContentDisposition -- Récupère l'en-tête Content-Disposition
- HttpResponse::getContentType -- Récupère l'en-tête Content-Type
- HttpResponse::getData -- Récupère les données
- HttpResponse::getETag -- Récupère l'ETag
- HttpResponse::getFile -- Récupère le fichier
- HttpResponse::getGzip -- Récupère la configuration gzip
- HttpResponse::getHeader -- Récupère un en-tête
- HttpResponse::getLastModified -- Récupère l'en-tête Last-Modified
- HttpResponse::getStream -- Récupère le flux
- HttpResponse::getThrottleDelay -- Récupère le délai de la commande
- HttpResponse::guessContentType -- Devine le type de contenu
- HttpResponse::send -- Envoi la réponse
- HttpResponse::setBufferSize -- Définit la taille du buffer
- HttpResponse::setCacheControl -- Définit l'en-tête cache-control
- HttpResponse::setCache -- Définit le cache
- HttpResponse::setContentDisposition -- Définit l'en-tête Content-Disposition
- HttpResponse::setContentType -- Définit l'en-tête content-type
- HttpResponse::setData -- Définit les données
- HttpResponse::setETag -- Dfinit l'ETag
- HttpResponse::setFile -- Définit le fichier
- HttpResponse::setGzip -- Définit le mode gzip
- HttpResponse::setHeader -- Définit un en-tête
- HttpResponse::setLastModified -- Définit l'en-tête Last-Modified
- HttpResponse::setStream -- Définit le flux
- HttpResponse::setThrottleDelay -- Définit le délai de la commande
- http_cache_etag -- Mise en cache en fonction de l'ETag
- http_cache_last_modified -- Mise en cache en fonction de la date de dernière modification
- http_chunked_decode -- Décode un fragment de donnée encodé
- http_deflate -- Compresse des données
- http_inflate -- Décompresse des données
- http_get_request_body_stream -- Récupère le corps demandé sous la forme d'un flux
- http_get_request_body -- Récupère le corps demandé sous la forme d'une chaîne de caractères
- http_get_request_headers -- Récupère les en-têtes sous la forme d'un tableau
- http_date -- Compose une date respectant la RFC HTTP
- http_support -- Vérifie le support HTTP interne
- http_match_etag -- Cherche un ETag particulier
- http_match_modified -- Vérifie la date de dernière modification
- http_match_request_header -- Cherche n'importe quel en-tete
- http_build_cookie -- Construit le cookie
- http_negotiate_charset -- Jeu de caractères préféré pour la négociation avec les clients
- http_negotiate_ctype -- Négocie le type de contenu préféré par les clients
- http_negotiate_language -- Négocie le langage préféré par les clients
- ob_deflatehandler -- Gestionnaire de sortie de compression
- ob_etaghandler -- Gestionnaire de sortie ETag
- ob_inflatehandler -- Gestionnaire de sortie de décompression
- http_parse_cookie -- Analyse un cookie HTTP
- http_parse_headers -- Analyse les en-tetes HTTP
- http_parse_message -- Analyse un message HTTP
- http_parse_params -- Analyse la liste des paramètres
- http_get -- Effectue une requête GET
- http_head -- Effectue une requête HEAD
- http_post_data -- Effectue une requête POST avec des données pré-encodées
- http_post_fields -- Effectue une requête POST avec des données à encoder
- http_put_data -- Effectue une requête PUT avec des données
- http_put_file -- Effecute une requête PUT avec un fichier
- http_put_stream -- Effectue une requête PUT avec un flux
- http_request_method_exists -- Vérifie si la méthode de requête existe
- http_request_method_name -- Récupère le nom de la requête
- http_request_method_register -- Enregistre une méthode de requête
- http_request_method_unregister -- Désenregistre une méthode de requête
- http_request -- Effectue une requête personnalisée
- http_request_body_encode -- Encode le corps de la requête
- http_redirect -- Effectue une redirection HTTP
- http_send_content_disposition -- Envoi l'en-tête Content-Disposition
- http_send_content_type -- Envoi le type de contenu
- http_send_data -- Envoi des données arbitraires
- http_send_file -- Envoi un fichier
- http_send_last_modified -- Envoi l'en-tête Last-Modified
- http_send_status -- Envoi le statut
- http_send_stream -- Envoi un flux
- http_throttle -- Étranglement HTTP
- http_build_str -- Construit une URL à partir d'une chaîne de caractères
- http_build_url -- Construit une URL
Actually, if you want to redirect a user why let HTML or JavaScript do it? Simply do this:
header("Location: http://www.example.com/");
Regarding what the guy before said. We've experienced problems where certain firewalls have encrypted the HTTP_REFERER meaning that it doesnt always contain the place you've come from.
Better to track where the user has come from either in a form post or in the url.
in reference to toashwinisidhu's and breaker's note, a more effective way would be to use meta-tag redirect, for example.
<?php
$url = "http://somesite.com/index.php"; // target of the redirect
$delay = "3"; // 3 second delay
echo '<meta http-equiv="refresh" content="'.$delay.';url='.$url.'">';
?>
The meta goes in the head of the HTML.
This method does not require javascript and is supported by most browsers and is rarely, if ever, filterd out.
The method given below may not sometimes work.
The following method has always worked with me:
just put the following 3 lines in your PHP code
?>
<body onload=setTimeout("location.href='$url'",$sec)>
<?PHP
-------?>
$sec is the time in second after which the browser would automatically go to the url. Set it to 0 if you do not want to give any time.
You can use this function on the events of various html/form objects (eg.-onclick for button).eg.
<input type=button value="Go to Php.net" onclick=setTimeout("location.href='php.net'",0)>
Use this to one step back
<input type="button" value="Back" onclick=history.go(-1)>
$HTTP_RAW_POST_DATA --
You'll usually access variables from forms sent via POST method by just accessing the associated PHP global variable.
However, if your POST data is not URI encoded (i.e., custom application that's not form-based) PHP won't parse the data into nice variables for you. You will need to use $HTTP_RAW_POST_DATA to access the raw data directly. (This should return a copy of the data given to the PHP process on STDIN; note that you wan't be able to open STDIN and read it yourself because PHP already did so itself.)
