Journal PHP /usr/bin/php

Posté par  .
Étiquettes : aucune
0
25
mar.
2004
Vous connaissez certainement tous PHP, mais qui d'entre vous peut me dire comment utiliser la commande `php' ?
Une lecture attentive de la page man me dit qu'on peut utiliser `php -f mon_script.php' pour exécuter une script PHP, avec `php -r mon_code' je peux aussi directement exécuter du code PHP. Mais comment passer les paramètres que passe habituellement le serveur à PHP ? Par exemple les variables $_SERVER, $_GET ou $_POST ?
Il semble que la commande n'accepte pas l'utilisation simultanée des options -r (pour passer les variables directement en PHP, par exemple) et -f (pour le script). On peut aussi penser à créer un nouveau script à passer en argument au programme qui concatène les modifications des variables serveur et le script PHP, mais bon c'est assez lourd.
Peut-être la solution se trouve-t-elle dans les argument de la commande PHP, dont le man ne donne pas assez d'informations à ce sujet. Peut-être ce programme s'utilise-t-il comme un programme CGI et les variables doivent-y être passées de la même façon (mais bon, je ne connais rien aux CGI) ?

Puisse-tu m'aider cher journal !

PS: Sur ce je vais lire de la doc sur CGI.
  • # Re: PHP /usr/bin/php

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    tu executes un script en ligne de commande, donc hors web, donc forcément, tu n'a ni $_GET, ni $_POST, ni $_SERVER (ces variables n'ayant plus aucun sens)

    par contre tu peux avoir des arguments en ligne de commande.
    mieux : tu peux te passer de l'appel de php, juste en mettant
    #!/usr/bin/php
    au début de ton script php

    tu le rend executable et ensuite, en ligne de commande :
    #> ./monscript.php arg1 arg2 arg3

    tu recupère les arguments dans une variables $argv ou un truc comme ça..
  • # Re: PHP /usr/bin/php

    Posté par  . Évalué à 0.

    Bon je ne sais pas si je progresse, mais j'ai trouvé un moyen de passer des variables dans le tableau $_SERVER :
    $ export QUERY_STRING='neil=123&hello=345'
    $ php
    <?php print $_SERVER["QUERY_STRING"]."\n" ; ?>
    neil=123&hello=345
    $

    Mais bon ça ne marche pas pour GET et compagnie...

    A suivre
  • # Re: PHP /usr/bin/php

    Posté par  . Évalué à 1.

    Eventuellement si tu as un serveur http dispo sur lequel se trouve ce script , wget peut etre ton ami.

    wget http://_servername_/_path_/monscript.php?plop=truc(...)

    Autre solution si pas de serveur http:

    php -f monscript_wrap.php dans lequel tu peux avoir:

    <? $_GET["mavar"]="plop";
    include("monscript.php" );

    ?>

    De toute maniere si ton script est ecrit pour du web et que tu veux l'utiliser dans un contexte non web ,
    il vaudrait peut etre mieux commencer par revoir le script ....

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.