Maison >développement back-end >tutoriel php >Comment transmettre des variables aux scripts PHP depuis la ligne de commande ?

Comment transmettre des variables aux scripts PHP depuis la ligne de commande ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-10 22:57:02936parcourir

How to Pass Variables to PHP Scripts from the Command Line?

Passer des variables aux scripts PHP à partir de 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.

Utilisation de $argv Array

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].

Gestion de l'exécution Web et en ligne de commande

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'].

Utilisation d'un script Shell et de Wget

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn