Passer des variables aux scripts PHP à partir de la ligne de commande
Lors de l'exécution de scripts PHP via la ligne de commande, par exemple via crontab, il est utile de transmettre des variables au script pour la personnalisation et le contrôle. Cependant, la méthode traditionnelle consistant à ajouter des paramètres de requête au chemin du script, comme php myfile.php?type=daily, peut ne pas fonctionner.
Le tableau $argv
Pour l'exécution en ligne de commande, PHP fournit le tableau $argv, qui contient les arguments passés au script. Le premier élément, $argv[0], est le nom de fichier du script. Les éléments suivants, à partir de $argv[1], contiennent les arguments supplémentaires.
Passer des arguments via $argv
Pour transmettre l'argument de type dans ce cas, appelez simplement le script comme suit :
php myfile.php daily
Au sein du script PHP, vous pouvez ensuite récupérer l'argument en utilisant $argv[1] :
$type = $argv[1];
Considération de page Web
Si votre script PHP est également utilisé comme page Web, vous devrez faire la distinction entre la ligne de commande et l'accès Web. Une approche consiste à vérifier si STDIN est défini, ce qui indique généralement une exécution en ligne de commande :
if (defined('STDIN')) { $type = $argv[1]; } else { $type = $_GET['type']; }
Vous pouvez également utiliser un script shell et Wget pour accéder au script via le Web à partir de la ligne de commande :
#!/bin/sh wget http://location.to/myfile.php?type=daily
En comprenant l'utilisation de $argv et en considérant l'accès au Web, vous pouvez transmettre efficacement des variables aux scripts PHP exécutés à partir de la ligne de commande.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!