$_SERVER['argv'] HTTP GET et CLI problème
Je suis en train d'écrire un script pour récupérer certaines données en ligne; script doit être invoqué par un tâche cron ou php cli et à la norme requête HTTP GET. Comme indiqué sur le site de PHP $_SERVER['argv']
doit l'adapter à mes besoins:
Tableau d'arguments passés au script. Lorsque le script est exécuté sur le
la ligne de commande, ce qui donne de style C accès à la ligne de commande
les paramètres. Lorsqu'elle est appelée par la méthode GET, cela va contenir le
chaîne de requête.
Cependant, je ne peux pas le faire fonctionner avec la norme requête HTTP GET. $_SERVER['argv']
n'est pas positionnée. Ce que je suis absent?
<?php
//jobs/fetch.php
var_dump($_SERVER['argv']);
?>
De la CLI de sortie php jobs/fetch.php -a -bhello
:
array(3) {
[0]=>
string(14) "jobs/fetch.php"
[1]=>
string(2) "-a"
[2]=>
string(7) "-bhello"
}
OBTENIR une sortie jobs/fetch.php?a=&b=hello
:
Notice: Undefined index: argv dans jobs/fetch.php.
OriginalL'auteur gremo | 2012-02-14
Vous devez vous connecter pour publier un commentaire.
Le manuel n'a pas d'état très bien, mais, si vous voulez
$_SERVER['argc']
,$_SERVER['argv']
,$argc
,$argv
être enregistrés lorsque vous sont pas en cours d'exécution dansCLI
mode, laphp.ini
valeur register_argc_argv doit être activé dans php.ini (désactivé par défaut) [pour des raisons de performances]).Vous pouvez faire ce qui suit pour obtenir
argv
, ou de la requête string args selon la façon dont le script est en cours d'exécution:Voici quelques détails de
php.ini
:Voir aussi http://www.php.net/manual/en/reserved.variables.argv.php et parse_str().
OriginalL'auteur drew010
Vous devrez utiliser
$_GET
ou$_SERVER['argv']
selon la façon dont votre script est appelé. Ni l'un est utilisé pour les deux.Par exemple:
OriginalL'auteur