Maison php教程 PHP开发 Flux d'entrée PHP php://explication de l'exemple d'entrée

Flux d'entrée PHP php://explication de l'exemple d'entrée

Dec 23, 2016 pm 01:01 PM

Quant à l'introduction de php://input, le document du manuel officiel de PHP contient un paragraphe qui le décrit clairement.
« php://input vous permet de lire des données POST brutes. C'est une alternative moins gourmande en mémoire que $HTTP_RAW_POST_DATA et ne nécessite aucune directive php.ini spéciale. php://input n'est pas disponible avec enctype= » multipart/form-data".

Traduit, ceci est :
"php://input peut lire les données POST non traitées. Comparé à $HTTP_RAW_POST_DATA, il exerce moins de pression sur la mémoire et ne nécessite pas de paramètres php.ini spéciaux. php://input ne peut pas être utilisé pour enctype=multipart/form-data”
Le résumé est le suivant :

1), Coentent-Type ne prend que la valeur application/x-www -data- Dans les deux cas de urlencoded et multipart/form-data, PHP remplira les données correspondantes dans le paquet de requête http dans la variable globale $_POST

2), lorsque le type Content-Type n'est pas reconnu par PHP, les données correspondantes dans le paquet de requête http seront renseignées dans la variable $HTTP_RAW_POST_DATA

3). Uniquement lorsque le Coentent-Type est multipart/form-data, PHP ne remplira pas les données correspondantes. dans le paquet de requête http.php://input, sinon la longueur renseignée est spécifiée par Coentent-Length 4), uniquement lorsque Content-Type est application/x-www-data-urlencoded, php:/ /input data. est cohérent avec les données $_POST

5), les données php://input sont toujours les mêmes que $HTTP_RAW_POST_DATA, mais php://input est plus efficace que $HTTP_RAW_POST_DATA et n'a pas besoin d'être spécial. Définissez php.ini

6), PHP remplira la partie query_path du champ PATH dans la variable globale $_GET Normalement, le corps de la requête http soumise par la méthode GET est vide.

Pour résumer, lorsque vous ne parvenez pas à obtenir les données de rappel de l'APP ou de certaines interfaces en utilisant $_POST, essayez d'utiliser php://input

1 Acceptez les données XML

.

2. Mini programme pour télécharger des images sur le serveur à partir de téléphones mobiles

Envoyer

//发送xml数据
$xml = &#39;<xml>xmldata</xml>&#39;;//要发送的xml 
$url = &#39;http://localhost/test/getXML.php&#39;;//接收XML地址 
$header = &#39;Content-type: text/xml&#39;;//定义content-type为xml 
$ch = curl_init(); //初始化curl 
curl_setopt($ch, CURLOPT_URL, $url);//设置链接 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置是否返回信息 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//设置HTTP头 
curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);//POST数据 
$response = curl_exec($ch);//接收返回信息 
if(curl_errno($ch)){//出错则显示错误信息 
print curl_error($ch); 
} 
curl_close($ch); //关闭curl链接 
echo $response;//显示返回信息 
 
 
// php用file_get_contents("php://input")或者$HTTP_RAW_POST_DATA可以接收xml数据
$xmldata = file_get_contents("php://input"); 
$data = (array)simplexml_load_string($xmldata);
Copier après la connexion
Recevoir


3 : Obtenez le texte original de la requête HTTP
//@file phpinput_post.php 
$data=file_get_contents(&#39;btn.png&#39;); 
$http_entity_body = $data; 
$http_entity_type = &#39;application/x-www-form-urlencoded&#39;; 
$http_entity_length = strlen($http_entity_body); 
$host = &#39;127.0.0.1&#39;; 
$port = 80; 
$path = &#39;/image.php&#39;; 
$fp = fsockopen($host, $port, $error_no, $error_desc, 30); 
if ($fp){ 
fputs($fp, "POST {$path} HTTP/1.1\r\n"); 
fputs($fp, "Host: {$host}\r\n"); 
fputs($fp, "Content-Type: {$http_entity_type}\r\n"); 
fputs($fp, "Content-Length: {$http_entity_length}\r\n"); 
fputs($fp, "Connection: close\r\n\r\n"); 
fputs($fp, $http_entity_body . "\r\n\r\n"); 
 
while (!feof($fp)) { 
 $d .= fgets($fp, 4096); 
} 
fclose($fp); 
echo $d; 
}
Copier après la connexion

Ce qui précède sont trois petits châtaignes pour le flux d'entrée PHP. Le but est d'aider tout le monde à comprendre plus précisément le flux d'entrée PHP.
/**
 *Recieve image data
 **/
error_reporting(E_ALL);
 
function get_contents() {
 $xmlstr= file_get_contents("php://input");
 $filename=file_put_contentsxmltime().&#39;.png&#39;;
 if(($filename,$str)){
 echo &#39;success&#39;;
 }else{
 echo &#39;failed&#39;;
 } 
  }
get_contents();
Copier après la connexion

Plus de flux d'entrée PHP. php. Pour des articles connexes sur les exemples d'entrée ://input, veuillez faire attention au site Web PHP chinois

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)