Les partenaires publicitaires:

Comment lire les chaînes de requête en php

Lorsque vous entrez "https://example.com/program.php?first=1&li-seconde = 2& tiers = 3"- dans un navigateur, vous exécutez le script PHP "program.php" sur le site Web "example.com" et fournir trois valeurs de paramètres: "premier" égal à un, "deuxième" égal à deux et "troisième" égal à trois. La chaîne de requête est la dernière partie de l'URL commence avec "en premier lieu," et est automatiquement stocké dans un tableau global par le serveur Web. Lorsque vous exécutez un script PHP à partir de la ligne de commande, les valeurs que vous transmettez sont stockées dans un tableau global différent.

Instructions

  • 1

    Lire la chaîne de requête en accédant à l'élément de QUERY_STRING du réseau mondial _SERVERS $. Considérons, par exemple, l'URL:

    https://example.com/program.php?first=1&li-seconde = 2& tiers = 3

    Le code suivant:

    lt;? php
    //program.php
    $ Qs = $ _SERVER ['QUERY_STRING'] -
    écho "Chaîne de requête: " . $ QS-
    ?gt;

    produit le résultat suivant:

    Chaîne de requête: first = 1&deuxième = 2&troisième = 3

  • 2

    Analyser la chaîne de requête dans ses arguments discrets en utilisant le "exploser" fonctionner à briser la chaîne de requête en dehors à chaque esperluette. Par exemple, le code suivant:



    lt;? php
    // Program.php
    $ Result = explode ("&", $ _SERVER ['QUERY_STRING']) -
    print_r ($ result) -
    ?gt;

    produit le résultat suivant:

    Array {
    [0] = gt; "première = 1"
    [1] = gt; "deuxième = 2"
    [2] = gt; "troisième = 3"
    }

  • 3

    Accéder au "argv" élément du tableau $ _SERVERS à lire les composants de la chaîne de requête lorsque vous exécutez un script PHP à partir de la ligne de commande. Considérons, par exemple, la commande suivante:




    première = 1 seconde de php = 2 = 3 troisième

    Le code suivant:

    lt;? php
    // Program.php
    $ Qs = $ _SERVER ['argv'] -
    print_r (qs $) -
    ?gt;

    produit le résultat suivant:

    Array {
    [0] = gt; "program.php"
    [1] = gt; "première = 1"
    [2] = gt; "deuxième = 2"
    [3] = gt; "troisième = 3"
    }

  • 4

    Utilisez le "imploser" fonction pour créer la chaîne de requête de l'entrée de ligne de commande. Par exemple, la ligne de commande:

    première = 1 seconde de php = 2 = 3 troisième

    lorsqu'il est exécuté avec le code suivant:

    lt;? php
    // Program.php
    Qsparts $ = $ _SERVER ['argv'] -
    unset (qs $ [0]) - // supprimer le nom du programme
    $ qs = implode ("&", $ Qsparts) -
    écho "La chaîne de requête: qs $"-
    ?gt;

    produit le résultat suivant:

    La chaîne de requête: first = 1&deuxième = 2&troisième = 3

Conseils & Avertissements

  • Depuis un utilisateur typique ne peut pas exécuter un script PHP à partir de la ligne de commande, la plupart des scripts PHP sont écrites en supposant que le script est soit toujours de fonctionner à partir d'un navigateur ou toujours courir à partir de la ligne de commande. Cependant, la PHP_SAPI constante prédéfinie est réglée sur "cli" quand un script est exécuté depuis la ligne de commande. Par exemple:
  • lt;? php
  • define ("LIGNE DE COMMANDE", PHP_SAPI == "cli");
  • if (command_line)
  • $ Query_string = read_commandLline_qs ();
  • autre
  • $ Query_string = read_url_qs ();
  • read_command_line_qs de fonction () {
  • $ Qs = $ _SERVER ['argv'];
  • unset (qs $ [] 0]);
  • retourner implode ('&', $ qs);
  • }
  • read_url_qs de fonction () {
  • retourner $ _SERVER ['' QUERY_STRING '];
  • ?gt;
  • Parce que les valeurs du tableau $ _SERVER sont définies par le serveur Web basé sur sa configuration, il n'y a aucune garantie que le serveur Web fournira toutes les valeurs dans le tableau. Cependant, au minimum, la plupart des serveurs Web fournissent les valeurs incluses dans la spécification d'interface de passerelle commune.
» » » » Comment lire les chaînes de requête en php