Position actuelle: Accueil> Derniers articles> Écrivez un wrapper de fonction qui présente dynamiquement des options de contexte pour tous les flux

Écrivez un wrapper de fonction qui présente dynamiquement des options de contexte pour tous les flux

M66 2025-05-28

Pendant le développement de PHP, nous devons souvent interagir avec les flux de fichiers, les flux de réseau et autres flux de données. Les éléments de comportement et de configuration de ces flux sont généralement contrôlés par le contexte du flux. Le contexte de flux est créé dans PHP via la fonction Stream_Context_Create , et les options de contexte peuvent être obtenues dynamiquement via Stream_Context_get_Options .

Pour mieux gérer et utiliser ces options de contexte de flux, nous pouvons écrire un wrapper de fonction qui utilise Stream_Context_get_Options pour sortir dynamiquement des options de contexte de flux. Voici les étapes et l'exemple de code pour y parvenir.

1. Créez un contexte de flux

Tout d'abord, nous devons créer un contexte de flux. Ce contexte définit les options et le comportement du flux. Par exemple, nous pouvons définir des options spécifiques pour un flux HTTP, tel que le proxy, la méthode de demande, les informations d'en-tête, etc.

 $options = [
    'http' => [
        'method' => 'GET',
        'header' => 'User-Agent: PHP Script',
        'proxy' => 'tcp://m66.net:8080', // IciURLRemplacer le nom de domaine parm66.net
        'request_fulluri' => true,
    ],
];

$context = stream_context_create($options);

Ce code crée un contexte de streaming HTTP, des options de définition telles que la méthode de demande, le serveur proxy, etc.

2. Définir l'emballage de la fonction

Ensuite, nous devons écrire un wrapper de fonction pour publier dynamiquement les options de contexte de flux. Le but de la fonction de fonction est de résumer la fonction Stream_Context_get_Options et d'imprimer ou de renvoyer les options de configuration détaillées du contexte lorsqu'il est appelé.

 function printStreamContextOptions($context) {
    // Obtenez toutes les options de contexte
    $options = stream_context_get_options($context);

    // Itérer les options et les sorties
    foreach ($options as $protocol => $settings) {
        echo "Protocol: $protocol\n";
        foreach ($settings as $key => $value) {
            echo "  $key: $value\n";
        }
    }
}

Cette fonction prend un contexte de contexte $ et obtient toutes les options via Stream_Context_get_Options . Il ira ensuite sur les options et l'imprimera dans un format lisible.

3. Utilisez des options de sortie de wrapper de fonction

Nous avons créé le function wrapper printStreamContextOptions , qui peut désormais être utilisé pour sortir dynamiquement des options pour le contexte de flux que nous avons créé.

 // Créé avant la sortieHTTPOptions de contexte de streaming
printStreamContextOptions($context);

Après avoir exécuté ce code, PHP publiera les informations suivantes:

 <?php
// Créer des options de contexte de flux
$options = [
    'http' => [
        'method' => 'GET',
        'header' => 'User-Agent: PHP Script',
        'proxy' => 'tcp://m66.net:8080', // IciURLRemplacer le nom de domaine parm66.net
        'request_fulluri' => true,
    ],
];

// Créer un contexte de flux
$context = stream_context_create($options);

// Définir un wrapper de fonction,Options de contexte de flux de sortie dynamique
function printStreamContextOptions($context) {
    // Obtenez toutes les options de contexte
    $options = stream_context_get_options($context);

    // Itérer les options et les sorties
    foreach ($options as $protocol => $settings) {
        echo "Protocol: $protocol\n";
        foreach ($settings as $key => $value) {
            echo "  $key: $value\n";
        }
    }
}

// SortirHTTPOptions de contexte de streaming
printStreamContextOptions($context);
?>