J'ai fait un script bash qui exécute un script php. Cela fonctionne très bien sans paramètres mais quand j'ajoute des paramètres (id et url), il y a quelques erreurs:
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf .d/mcrypt.ini on line 1 in Unknown on line 0
Could not open input file: /var/www/dev/dbinsert/script/automatisation.php? id=1
Je lance le script php depuis le bash comme ceci:
php /var/www/dev/dbinsert/script/automatisation.php?id=19&url=http://bkjbezjnkelnkz.com
Appelez-le comme:
php /path/to/script/script.php -- 'id=19&url=http://bkjbezjnkelnkz.com'
Modifiez également votre script PHP pour utiliser parse_str () :
parse_str($argv[1]);
Si l'index $_SERVER['REMOTE_ADDR']
n'est pas défini.
Une gestion plus avancée peut nécessiter getopt () , mais parse_str () est un moyen rapide et efficace de le faire fonctionner.
Vous ne pouvez pas passer les paramètres de requête GET à l'interface de ligne de commande PHP. Soit vous passez les arguments en tant qu'arguments de ligne de commande standard et utilisez le $argc
et $argv
globals pour les lire, ou (si vous devez utiliser les paramètres GET/POST) appeler le script via curl/wget et transmettre les paramètres de cette façon - en supposant que le script soit accessible via un serveur Web local.
Voici comment passer des arguments à lire par $argc
et $argv
(le - indique que tous les arguments suivants doivent aller dans le script et non dans l'interpréteur PHP binaire):
php myfile.php -- argument1 argument2
- Option 1: php-cgi -
Utilisez "php-cgi" à la place de "php" pour exécuter votre script. C'est le moyen le plus simple car vous n'aurez pas besoin de modifier spécialement votre code php pour travailler avec:
php-cgi -f /my/script/file.php id=19 myvar=xyz
- Option 2: si vous avez un serveur web -
Si le fichier php est sur un serveur Web, vous pouvez utiliser 'wget' sur la ligne de commande:
wget 'http://localhost/my/script/file.php?id=19&myvar=xyz'
OU:
wget -q -O - "http://localhost/my/script/file.php?id=19&myvar=xyz"
- Accès aux variables en php -
Dans les deux options 1 et 2, vous accédez à ces paramètres comme ceci:
$id = $_GET["id"];
$myvar = $_GET["myvar"];