Maison  >  Article  >  développement back-end  >  Comment transmettre des variables aux scripts PHP à partir de la ligne de commande ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-17 13:10:01416parcourir

How Do I Pass Variables to PHP Scripts From the Command Line?

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!

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