Maison >développement back-end >tutoriel php >Comment transmettre des variables aux scripts PHP depuis la ligne de commande ?
Lors de l'exécution de scripts PHP à partir de la ligne de commande, il est souvent nécessaire de transmettre des variables. Cependant, les tentatives pour y parvenir en utilisant la méthode $_GET traditionnelle (par exemple, php myfile.php?type=daily) peuvent entraîner l'erreur « Impossible d'ouvrir le fichier d'entrée ».
En effet, le tableau $_GET n'est généralement accessible que lorsqu'un script est exécuté en tant que page Web. Pour gérer le passage de variables à partir de la ligne de commande, des méthodes alternatives doivent être utilisées.
Lors de l'exécution d'un script PHP à partir de la ligne de commande, les variables peuvent être transmises à l'aide de $argv tableau. Ce tableau contient les arguments fournis après le nom du script. Par exemple, pour passer la variable type=daily, vous appelleriez le script comme suit :
php myfile.php daily
Dans le script PHP, vous pouvez récupérer la variable en utilisant $argv[1].
Si un script PHP est destiné à l'exécution à la fois sur le Web et en ligne de commande, vous pouvez vérifier si le script est appelé à partir de la ligne de commande à l'aide de la constante STDIN. L'extrait de code suivant illustre ceci :
if (defined('STDIN')) { $type = $argv[1]; } else { $type = $_GET['type']; }
Dans cet exemple, si le script est exécuté à partir de la ligne de commande, la variable de type sera récupérée à partir de $argv[1]. Sinon, il sera récupéré à partir de $_GET['type'].
Une autre option pour transmettre des variables à partir de la ligne de commande consiste à utiliser un script shell et Wget . Cela peut être utile si vous devez transmettre une variable dans le cadre d'une URL. Le script shell suivant illustre cette approche :
#!/bin/sh wget http://location.to/myfile.php?type=daily
Dans ce script, la variable type=daily est transmise dans le cadre de l'URL. Le script peut ensuite être appelé depuis cron pour exécuter le script PHP avec la variable spécifiée.
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!