web-dev-qa-db-fra.com

Exécuter / exécuter un script PHP avec des paramètres

J'ai besoin d'exécuter un fichier php avec des paramètres via Shell.

voici comment j'exécuterais le fichier php:

php -q htdocs/file.php

Je dois faire passer le paramètre "show" et

php -q htdocs/file.php? show = nom_montre

ne fonctionne pas

Si quelqu'un pouvait m'expliquer quelle commande exécuter pour que le fichier php s'exécute avec des paramètres définis, ce serait très apprécié. Sinon, essayez de me conduire dans la bonne direction.

35
Patrick Lorio

test.php:

<?php
print_r($argv);
?>

Coquille:

$ php -q test.php foo bar
Array
(
    [0] => test.php
    [1] => foo
    [2] => bar
)
46
schneck
5
FlameStorm

Vous devez lire les paramètres de ligne de commande à partir de $ argc et $ argv .

L'utilisation d'un point d'interrogation est quelque chose que vous faites dans une URL et n'a rien à voir avec l'exécution de PHP à partir d'une ligne de commande.

Voir aussi: http://www.sitepoint.com/php-command-line-1/

3
Brad

En plus des autres réponses (qui sont tout à fait correctes), vous pouvez également passer des arguments en tant que paramètres d'environnement, comme ceci:

FOO=42 BAR=quux php test.php

Ils seront ensuite disponibles dans le superglobal $_ENV.

2
troelskn

Si vous l'utilisez à partir d'un fichier PHP, alors vous pouvez utiliser popen () et faire quelque chose comme ceci:

$part = $show_name; //or whatever you want with spaces

$handle = popen("php -q nah.php -p=". escapeshellarg($part) . " 2>&1", "r");

Ceci utilise la fonction escapeshellarg () afin d'envelopper le $part variable entre guillemets (et échappe tous les guillemets à l'intérieur), afin qu'elle puisse être utilisée comme argument Shell en toute sécurité.

0
kritya