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

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

伊谢尔伦
伊谢尔伦original
2017-06-26 14:34:252738parcourir

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);

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

2. Utilisez getoptFonction

<?php
/**
 * 使用 getopt函数
 */
 
$param_arr = getopt(&#39;a:b:&#39;);
print_r($param_arr);

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
)

3. Invitez l'utilisateur à saisir

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

Exécuter

[root@DELL113 lee]# /usr/local/php/bin/php test.php

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";

Exécuter

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


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