Utiliser PHP à partir de la ligne de commande : transmettre des variables aux scripts
Exécuter des scripts PHP à partir de la ligne de commande peut être un moyen pratique d'automatiser des tâches . Cependant, transmettre des variables à ces scripts peut prêter à confusion. Cet article explique comment transmettre efficacement des variables aux scripts PHP invoqués à partir de la ligne de commande.
Le problème
Lors de la tentative de transmission de variables à l'aide du format de chaîne de requête URL, vous pouvez rencontrer une erreur comme celle-ci : « Impossible d'ouvrir le fichier d'entrée : myfile.php?type=daily. » En effet, le format de chaîne de requête n'est valide que pour les pages accessibles sur le Web.
解决方案
Pour transmettre des variables aux scripts PHP à partir de la ligne de commande, vous devez besoin d'utiliser le tableau $argv. Voici comment procéder :
1. Récupérer les variables de $argv
Lors de l'exécution d'un script PHP à partir de la ligne de commande, les paramètres qui lui sont transmis sont stockés dans le tableau $argv. Le premier élément ($argv[0]) est le nom de fichier du script, tandis que les éléments suivants contiennent les paramètres. Pour récupérer la valeur d'un paramètre spécifique, utilisez son index dans le tableau. Par exemple, pour obtenir la valeur du paramètre "type", vous utiliserez $argv[1].
Code :
<?php // Check if the script was called from the command line if (defined('STDIN')) { // Get the type parameter from $argv $type = $argv[1]; } ?>
2 . Gérer également l'accès au Web
Si le script est également utilisé comme page Web, vous pouvez vérifier s'il est appelé à partir de la ligne de commande ou non et gérer la variable transmise en conséquence :
<?php if (defined('STDIN')) { // Running from command line $type = $argv[1]; } else { // Running as a web page $type = $_GET['type']; } ?>
3. Utilisation de Wget ou d'un script Shell
Si vous souhaitez accéder au script à l'aide d'une syntaxe de type URL tout en l'exécutant à partir de la ligne de commande, vous pouvez utiliser un script shell ou Wget pour exécuter la requête à distance :
Script Shell :
#!/bin/sh wget http://location.to/myfile.php?type=daily
En suivant ces méthodes, vous pouvez transmettre efficacement des variables aux scripts PHP exécutés à partir de la ligne de commande, vous permettant d'automatiser les tâches et les processus. données efficacement.
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!