Dans PHP, la fonction Stream_Context_get_Options peut être utilisée pour obtenir toutes les options dans le contexte de flux créées par Stream_Context_Create . Ces options sont renvoyées sous forme de tableau, chaque élément représentant les paramètres du flux. De nombreux développeurs peuvent rencontrer un problème lors de l'utilisation de Stream_Context_get_Options : Que représente le nom du protocole dans la structure du tableau retourné? Cette question est directement liée à la façon dont nous comprenons le comportement des flux, en particulier lors de la réalisation de demandes de réseau.
Tout d'abord, passons en revue l'utilisation de base de la fonction Stream_Context_get_Options . Cette fonction prend un paramètre de ressource de contexte de flux et renvoie toutes les options pour ce contexte. Ces options sont généralement renvoyées en tant que tableau associatif, où chaque protocole (comme HTTP, FTP, etc.) correspond à un tableau d'options.
<?php
// Créer un HTTP Contexte de la diffusion
$options = [
'http' => [
'method' => 'GET',
'header' => 'Content-Type: application/json'
]
];
$context = stream_context_create($options);
// Obtenez des options dans le contexte
$contextOptions = stream_context_get_options($context);
print_r($contextOptions);
?>
La sortie est similaire à ce qui suit:
Array
(
[http] => Array
(
[method] => GET
[header] => Content-Type: application/json
)
)
Comme vous pouvez le voir, le tableau renvoyé est un tableau où le nom de clé est le nom du protocole (dans ce cas HTTP ), et la valeur est les paramètres spécifiques du protocole.
Dans le tableau renvoyé par Stream_Context_get_Options , le nom du protocole est en fait une clé d'un tableau, qui représente le type de protocole utilisé par le flux. Il indique les règles comportementales et les options configurables pour les opérations de flux, et les paramètres associés à un protocole particulier sont généralement organisés par le nom du protocole. Par exemple, le protocole HTTP est généralement lié aux paramètres liés aux demandes HTTP (telles que les méthodes de demande, les informations d'en-tête), tandis que le protocole FTP est lié aux paramètres liés au FTP (tels que le nom d'utilisateur, le mot de passe, le mode passif, etc.).
En d'autres termes, un nom de protocole est comme une balise de classification qui nous aide à organiser des options pour différents protocoles et permet au contexte de la même classe de prendre en charge plusieurs paramètres de protocole en même temps.
Par exemple, lorsque vous créez un contexte de streaming, vous pouvez configurer les protocoles HTTP et FTP:
<?php
$options = [
'http' => [
'method' => 'GET',
'header' => 'Content-Type: application/json',
],
'ftp' => [
'username' => 'user',
'password' => 'pass',
'passive' => true,
],
];
$context = stream_context_create($options);
// Obtenez des options dans le contexte
$contextOptions = stream_context_get_options($context);
print_r($contextOptions);
?>
La sortie sera:
Array
(
[http] => Array
(
[method] => GET
[header] => Content-Type: application/json
),
[ftp] => Array
(
[username] => user
[password] => pass
[passive] => 1
)
)
Ici, HTTP et FTP représentent deux configurations de protocole différentes, chacune avec leurs propres paramètres. Cela démontre également l'importance des noms de protocole pour distinguer les différentes options de protocole.
Le nom du protocole est déterminé en fonction du protocole pris en charge par PHP. Par exemple:
HTTP : représente le protocole HTTP, qui est généralement utilisé pour définir la méthode de la demande HTTP, les informations d'en-tête, etc.
FTP : représente le protocole FTP, qui est généralement utilisé pour définir les informations de connexion FTP, le mode de téléchargement / téléchargement, etc.
SSL : signifie une connexion cryptée SSL / TLS, utilisée pour ajouter la sécurité dans la communication réseau.
Ces noms de protocole ne sont pas arbitraires à choisir, ils sont spécifiés par PHP lors de la gestion des contextes de streaming, garantissant que les configurations d'option de différents protocoles sont organisées correctement. Par exemple, lorsque vous définissez l'option HTTP , PHP saura qu'il devrait suivre les règles du protocole HTTP et créer la demande correspondante en fonction de vos paramètres.
Dans le développement réel, les contextes de streaming sont souvent associés à des ressources externes (telles que les fichiers, les URL), il est donc très important de comprendre le rôle des noms de protocole. Par exemple, lorsque vous faites une demande HTTP, vous pouvez contrôler l'en-tête de demande, la méthode de demande, etc. En définissant l'option Protocole HTTP ; Si vous effectuez des opérations FTP, vous pouvez définir des informations sur le nom d'utilisateur et le mot de passe via l'option Protocole FTP .
Supposons que vous deviez remplacer l'URL dans le code par le nom de domaine m66.net , vous pouvez le faire comme ceci: