Maison > développement back-end > tutoriel php > Comment transmettre des paramètres à php sous la commande shell

Comment transmettre des paramètres à php sous la commande shell

伊谢尔伦
Libérer: 2023-03-11 14:32:01
original
2785 Les gens l'ont consulté

Habituellement, PHP effectue des requêtes HTTP et vous pouvez utiliser GET ou POST pour recevoir des paramètres. Parfois, vous devez exécuter PHP en tant que script sous une commande shell, telle qu'une tâche planifiée. Cela implique la question de savoir comment transmettre les paramètres à php sous la commande shell. Il existe généralement trois façons de transmettre des paramètres.

1. Utilisez le paramètre $argv ou $argc pour recevoir

<?php
/**
 * 使用 $argc $argv 接受参数
 */
 echo "接收到{$argc}个参数";
print_r($argv);
Copier après la connexion

Exécuter

[root@DELL113 lee]# /usr/local/php/bin/php test.php
接收到1个参数
Array
(
    [0] => test.php
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php a b c d
接收到5个参数Array
(
    [0] => test.php
    [1] => a
    [2] => b
    [3] => c
    [4] => d
)
[root@DELL113 lee]#
Copier après la connexion

2. Utilisez getoptFonction

<?php
/**
 * 使用 getopt函数
 */
 
$param_arr = getopt(&#39;a:b:&#39;);
print_r($param_arr);
Copier après la connexion

Exécution

[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345
Array
(
    [a] => 345
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3
Array
(
    [a] => 345
    [b] => 12q3
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3 -e 3322ff
Array
(
    [a] => 345
    [b] => 12q3
)
Copier après la connexion

3. Invitez l'utilisateur à saisir

<?php
/**
 * 提示用户输入,类似Python
 */
fwrite(STDOUT,&#39;请输入您的博客名:&#39;);
echo &#39;您输入的信息是:&#39;.fgets(STDIN);
Copier après la connexion

Exécuter

[root@DELL113 lee]# /usr/local/php/bin/php test.php
Copier après la connexion

Veuillez saisir le nom de votre blog :
Les informations que vous avez saisies sont :
Vous pouvez également le faire pour empêcher les utilisateurs de saisir des informations vides

<?php
/**
 * 提示用户输入,类似Python
 */
 
$fs = true;
 
do{
oif($fs){
fwrite(STDOUT,&#39;请输入您的博客名:&#39;);
$fs = false;
}else{
fwrite(STDOUT,&#39;抱歉,博客名不能为空,请重新输入您的博客名:&#39;);
}
 
$name = trim(fgets(STDIN));
 
}while(!$name);
 
echo &#39;您输入的信息是:&#39;.$name."\r\n";
Copier après la connexion

Exécuter

[root@DELL113 lee]# /usr/local/php/bin/php test.php 
请输入您的博客名:
抱歉,博客名不能为空,请重新输入您的博客名:
您输入的信息是:
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal