


PHP utilise stream_context_create() pour simuler la méthode de requête POST/GET et un exemple d'analyse
Cet article présente principalement comment PHP utilise stream_context_create() pour simuler les requêtes POST/GET. Il analyse en détail le principe de stream_context_create pour simuler les requêtes POST/GET sous forme d'exemples, de méthodes d'utilisation et de précautions associées. peut Pour référence,
Parfois, nous devons simuler POST/GET et d'autres requêtes côté serveur, c'est-à-dire implémenter la simulation dans le programme PHP. En d’autres termes, dans un programme PHP, si on vous donne un tableau, comment POST/GET ce tableau à une autre adresse ? Bien sûr, c'est facile de le faire en utilisant CURL, mais que se passe-t-il si vous n'utilisez pas la bibliothèque CURL ? En fait, il existe déjà une fonction connexe implémentée en PHP, et cette fonction est stream_context_create() dont je parlerai ensuite.
Vous montrer le code directement, c'est le meilleur moyen :
$data = array( 'foo'=>'bar', 'baz'=>'boom', 'site'=>'localhost', 'name'=>'nowa magic'); $data = http_build_query($data); //$postdata = http_build_query($data); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => $data //'timeout' => 60 * 60 // 超时时间(单位:s) ) ); $url = "http://localhost/test2.php"; $context = stream_context_create($options); $result = file_get_contents($url, false, $context); echo $result;
http Le le code de ://localhost/test2.php est :
$data = $_POST; echo '<pre class="brush:php;toolbar:false">'; print_r( $data ); echo '';
Le résultat en cours d'exécution est :
Array ( [foo] => bar [baz] => boom [site] => localhost [name] => nowa magic )
Quelques points clés à expliquer :
1. Le programme ci-dessus utilise la fonction http_build_query() Si vous avez besoin de savoir. pour en savoir plus, vous pouvez vous référer à l'article précédent "Comment PHP utilise http_build_query() pour construire une chaîne d'URL".
2. stream_context_create() est utilisé pour créer des options de contexte pour l'ouverture de fichiers, telles que l'accès avec POST, l'utilisation d'un proxy, l'envoi d'en-têtes, etc. Créez simplement un flux, donnons un autre exemple :
$context = stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => sprintf("Authorization: Basic %s\r\n", base64_encode($username.':'.$password)). "Content-type: application/x-www-form-urlencoded\r\n", 'content' => http_build_query(array('status' => $message)), 'timeout' => 5, ), )); $ret = file_get_contents('http://twitter.com/statuses/update.xml', false, $context);
3 Les options de contexte créées par stream_context_create peuvent être utilisées pour le flux ( flux), et peut également être utilisé dans les systèmes de fichiers. Il est plus utile pour les fonctions telles que file_get_contents, file_put_contents et readfile qui opèrent directement sur les noms de fichiers sans descripteurs de fichiers. L'ajout d'en-têtes à stream_context_create n'est qu'une partie de la fonction. Vous pouvez également définir des proxys, des délais d'attente, etc. Cela rend la fonction d'accès au Web pas plus faible que curl.
4. La fonction de stream_context_create() : créer et renvoyer un flux de données texte et appliquer diverses options, qui peuvent être utilisées pour les paramètres de délai d'attente, les serveurs proxy, les méthodes de requête et les paramètres d'informations d'en-tête de fopen(), file_get_contents() et autres processus spéciaux.
5. stream_context_create peut également résoudre le traitement du délai d'attente de file_get_contents en ajoutant l'option de délai d'attente :
$opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>60, ) ); //创建数据流上下文 $context = stream_context_create($opts); $html =file_get_contents('http://localhost', false, $context); //fopen输出文件指针处的所有剩余数据: //fpassthru($fp); //fclose()前使用
Résumé : ce qui précède représente l'intégralité du contenu de cet article. , j’espère que cela pourra être utile à l’étude de chacun.
Recommandations associées :
phpPrincipe de tri rapide et méthode de mise en œuvre et exemple d'analyse
PHPExcel Méthodes et exemples simples pour implémenter la lecture de fichiers Excel
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Le contexte est l'environnement et les informations d'état lorsque le programme est exécuté. Il peut inclure diverses informations, telles que la valeur des variables, la pile d'appels de fonctions, l'emplacement d'exécution du programme, etc., permettant au programme d'effectuer les correspondances. décisions basées sur différents contextes et effectuer les opérations correspondantes.

Le fonctionnement du flux est un point fort de Java8 ! Bien que java.util.stream soit très puissant, de nombreux développeurs l'utilisent encore rarement dans leur travail réel. L'une des raisons les plus critiquées est qu'il est difficile à déboguer. C'était effectivement le cas au début, à cause des opérations de streaming. car le flux ne peut pas être utilisé dans DEBUG Lorsqu'il s'agit d'une ligne de code, lorsqu'il s'agit de l'étape suivante, de nombreuses opérations sont en fait passées en même temps, il nous est donc difficile de juger quelle ligne pose problème. Plug-in : JavaStreamDebugger Si la version d'IDEA que vous utilisez est relativement nouvelle, ce plug-in est déjà inclus et n'a pas besoin d'être installé. S'il n'est pas encore installé, installez-le manuellement, puis continuez ci-dessous.

Comment utiliser le contexte pour implémenter la mise en cache des requêtes dans Go Introduction : Lors de la création d'applications Web, nous avons souvent besoin de mettre en cache les requêtes pour améliorer les performances. Dans le langage Go, nous pouvons utiliser le package de contexte pour implémenter la fonction de mise en cache des requêtes. Cet article expliquera comment utiliser le package de contexte pour implémenter la mise en cache des requêtes et fournira des exemples de code pour aider les lecteurs à mieux comprendre. Qu’est-ce que le contexte ? : En langage Go, le package de contexte fournit un moyen de passer entre plusieurs goroutines

Comment utiliser le contexte pour implémenter le suivi des liens de demande dans Go Dans l'architecture des microservices, le suivi des liens de demande est une technologie très importante utilisée pour suivre la livraison et le traitement d'une demande entre plusieurs microservices. Dans le langage Go, nous pouvons utiliser le package de contexte pour implémenter le suivi des liens de demande. Cet article explique comment utiliser le contexte pour le suivi des liens de demande et donne des exemples de code. Tout d’abord, nous devons comprendre les concepts de base et l’utilisation du package contextuel. Le package de contexte fournit un mécanisme

Le flux de java8 prend maxpublicstaticvoidmain(String[]args){Listlist=Arrays.asList(1,2,3,4,5,6);Integermax=list.stream().max((a,b)->{if ( a>b){return1;}elsereturn-1;}).get();System.out.println(max);}Remarque : la taille est déterminée ici par des nombres positifs et négatifs et des valeurs 0. Au lieu de l'écrire directement if(a>b){returna;}elseretur

Comment utiliser le contexte pour implémenter le contrôle du délai d'expiration des requêtes dans Go Introduction : Lorsque nous effectuons des requêtes réseau, nous rencontrons souvent des problèmes de délai d'expiration des requêtes. Une requête réseau qui ne répond pas pendant une longue période gaspillera non seulement les ressources du serveur, mais affectera également les performances globales. Afin de résoudre ce problème, le langage Go a introduit le package contextuel, qui peut être utilisé pour implémenter le contrôle du délai d'attente des requêtes. Cet article expliquera comment utiliser le package de contexte pour implémenter le contrôle du délai d'expiration des requêtes dans Go et joindra des exemples de code correspondants. 1. Comprendre le contexte du package co

Comment utiliser le contexte pour implémenter une stratégie de nouvelle tentative de requête dans Go Introduction : Lors de la construction d'un système distribué, les requêtes réseau rencontreront inévitablement des échecs. Afin de garantir la fiabilité et la stabilité du système, nous utilisons généralement une stratégie de nouvelle tentative pour gérer ces demandes ayant échoué afin d'augmenter le taux de réussite de la demande. Dans le langage Go, nous pouvons utiliser le package de contexte pour implémenter la stratégie de nouvelle tentative de demande. Cet article explique comment utiliser le package de contexte dans Go pour implémenter une stratégie de nouvelle tentative de demande, avec des exemples de code. 1. Qu'est-ce que

Le package de contexte dans le langage Go est utilisé pour transmettre des informations contextuelles de requête dans le programme. Il peut transmettre des paramètres, intercepter des requêtes et annuler des opérations entre des fonctions sur plusieurs Goroutines. Pour utiliser le package de contexte dans Go, nous devons d'abord importer le package "context". Vous trouverez ci-dessous un exemple qui montre comment utiliser le package de contexte pour implémenter le passage des paramètres de requête. packagemainimport("contexte"
