Dans PHP, un flux est une représentation abstraite des fichiers, des connexions réseau, de la mémoire et d'autres types de ressources. Pour manipuler ces flux, nous devons généralement définir et configurer le contexte du flux. Le contexte de flux contient certains paramètres d'environnement lors de l'exploitation du flux, tels que les en-têtes de demande, les serveurs proxy, etc. Dans le développement réel, nous devons parfois afficher ou obtenir rapidement ces informations de configuration, et nous pouvons utiliser la fonction Stream_Context_get_get_options fournie par PHP.
stream_context_get_options est une fonction intégrée en PHP pour obtenir toutes les informations de configuration dans le contexte de flux actuel. Cette fonction renvoie un tableau associatif où la clé est le type de protocole du flux (tel que HTTP , FTP , fichier , etc.), et la valeur est l'option de configuration sous ce type de protocole.
<span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-title function_ invoke__">stream_context_get_options</span></span><span> ( resource </span><span><span class="hljs-variable">$context</span></span><span> )
</span></span>
Paramètres : $ Le contexte est une ressource de contexte de flux, généralement obtenu via Stream_Context_Create () ou via certaines fonctions de fonctionnement de fichier (telles que FOPEN ).
Valeur de retour : renvoie un tableau associatif contenant toutes les informations de configuration. Si le contexte n'a pas de configuration, un tableau vide est renvoyé.
Pour utiliser stream_context_get_options , nous devons d'abord créer un contexte de flux. Le contexte de flux est généralement créé via la fonction Stream_Context_Create () , et ce qui suit est un exemple:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$options</span></span><span> = [
</span><span><span class="hljs-string">'http'</span></span><span> => [
</span><span><span class="hljs-string">'method'</span></span><span> => </span><span><span class="hljs-string">'GET'</span></span><span>,
</span><span><span class="hljs-string">'header'</span></span><span> => </span><span><span class="hljs-string">'Accept-language: en\r\n'</span></span><span>,
],
];
</span><span><span class="hljs-variable">$context</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_context_create</span></span><span>(</span><span><span class="hljs-variable">$options</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Ici, nous créons un contexte de protocole HTTP, qui inclut la méthode de demande ( GET ) et un en-tête de demande ( acceptation acceptante ).
Une fois un contexte de flux créé, les informations de configuration de ce contexte peuvent être obtenues via stream_context_get_options . Les exemples sont les suivants:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$options</span></span><span> = [
</span><span><span class="hljs-string">'http'</span></span><span> => [
</span><span><span class="hljs-string">'method'</span></span><span> => </span><span><span class="hljs-string">'GET'</span></span><span>,
</span><span><span class="hljs-string">'header'</span></span><span> => </span><span><span class="hljs-string">'Accept-language: en\r\n'</span></span><span>,
],
];
</span><span><span class="hljs-variable">$context</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_context_create</span></span><span>(</span><span><span class="hljs-variable">$options</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la configuration du contexte du flux</span></span><span>
</span><span><span class="hljs-variable">$options</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_context_get_options</span></span><span>(</span><span><span class="hljs-variable">$context</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$options</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
La sortie peut ressembler à ceci:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[http] => </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[method] => GET
[header] => Accept-</span><span><span class="hljs-attr">language</span></span><span>: en
)
)
</span></span>
Comme vous pouvez le voir, le tableau retourné affiche toutes les informations de configuration dans le protocole HTTP , y compris les méthodes HTTP et les informations d'en-tête de demande.
La fonction Stream_Context_get_Options est très adaptée à la débogage et à la visualisation des configurations de contextes de flux, en particulier lors de la gestion des demandes HTTP complexes. Par exemple, lors de l'envoi d'une demande de post, nous avons peut-être défini de nombreuses options pour le contexte du flux, et Stream_Context_get_Options peut être facilement vérifié si ces paramètres sont corrects.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$options</span></span><span> = [
</span><span><span class="hljs-string">'http'</span></span><span> => [
</span><span><span class="hljs-string">'method'</span></span><span> => </span><span><span class="hljs-string">'POST'</span></span><span>,
</span><span><span class="hljs-string">'header'</span></span><span> => </span><span><span class="hljs-string">'Content-Type: application/x-www-form-urlencoded\r\n'</span></span><span>,
</span><span><span class="hljs-string">'content'</span></span><span> => </span><span><span class="hljs-title function_ invoke__">http_build_query</span></span><span>([</span><span><span class="hljs-string">'key'</span></span><span> => </span><span><span class="hljs-string">'value'</span></span><span>]),
],
];
</span><span><span class="hljs-variable">$context</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_context_create</span></span><span>(</span><span><span class="hljs-variable">$options</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la configuration du contexte du flux信息</span></span><span>
</span><span><span class="hljs-variable">$options</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_context_get_options</span></span><span>(</span><span><span class="hljs-variable">$context</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$options</span></span><span>);
</span><span><span class="hljs-comment">// Envoyer des demandes via la configuration</span></span><span>
</span><span><span class="hljs-variable">$response</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'http://example.com'</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-variable">$context</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans le code ci-dessus, nous configurons d'abord les options pertinentes pour la demande de post pour le protocole HTTP et vérifions si ces configurations sont correctes via Stream_Context_get_Options . Ensuite, une demande HTTP avec configuration est envoyée via File_get_Contents .
La fonction Stream_Context_get_Options est un outil très utile, en particulier lors de la débogage des opérations de flux PHP. Il nous permet d'obtenir rapidement toutes les informations de configuration dans le contexte du flux, aidant les développeurs à confirmer si diverses options sont définies correctement. Que ce soit lorsque vous effectuez des demandes de réseau ou des opérations de fichiers, comprendre comment utiliser et obtenir des configurations de contexte de streaming est essentiel pour améliorer la maintenabilité du code et l'efficacité de débogage.