PHP命令行腳本接收傳入?yún)?shù)的三種方式
通常PHP都做http方式請(qǐng)求了,可以使用GET or POST方式接收參數(shù),有些時(shí)候需要在shell命令下把PHP當(dāng)作腳本執(zhí)行,比如定時(shí)任務(wù)。這就涉及到在shell命令下如何給php傳參的問(wèn)題,通常有三種方式傳參。
一、使用$argv or $argc參數(shù)接收
<?php
/**
* 使用 $argc $argv 接受參數(shù)
*/
echo "接收到{$argc}個(gè)參數(shù)";
print_r($argv);
執(zhí)行
[root@DELL113 lee]# /usr/local/php/bin/php test.php
接收到1個(gè)參數(shù)Array
(
[0] => test.php
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php a b c d
接收到5個(gè)參數(shù)Array
(
[0] => test.php
[1] => a
[2] => b
[3] => c
[4] => d
)
[root@DELL113 lee]#
二、使用getopt函數(shù)
<?php
/**
* 使用 getopt函數(shù)
*/
$param_arr = getopt('a:b:');
print_r($param_arr);
執(zhí)行
[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
)
三、提示用戶(hù)輸入
<?php
/**
* 提示用戶(hù)輸入,類(lèi)似Python
*/
fwrite(STDOUT,'請(qǐng)輸入您的博客名:');
echo '您輸入的信息是:'.fgets(STDIN);
執(zhí)行
[root@DELL113 lee]# /usr/local/php/bin/php test.php
請(qǐng)輸入您的博客名:腳本之家 www.dhdzp.com
您輸入的信息是:腳本之家 www.dhdzp.com
你也可以這么干,不讓用戶(hù)輸入空信息
<?php
/**
* 提示用戶(hù)輸入,類(lèi)似Python
*/
$fs = true;
do{
oif($fs){
fwrite(STDOUT,'請(qǐng)輸入您的博客名:');
$fs = false;
}else{
fwrite(STDOUT,'抱歉,博客名不能為空,請(qǐng)重新輸入您的博客名:');
}
$name = trim(fgets(STDIN));
}while(!$name);
echo '您輸入的信息是:'.$name."\r\n";
執(zhí)行
[root@DELL113 lee]# /usr/local/php/bin/php test.php
請(qǐng)輸入您的博客名:
抱歉,博客名不能為空,請(qǐng)重新輸入您的博客名:腳本之家
您輸入的信息是:腳本之家
相關(guān)文章
布隆過(guò)濾器(bloom filter)及php和redis實(shí)現(xiàn)布隆過(guò)濾器的方法
這篇文章主要介紹了布隆過(guò)濾器(bloom filter)介紹以及php和redis實(shí)現(xiàn)布隆過(guò)濾器實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
swoole_process實(shí)現(xiàn)進(jìn)程池的方法示例
這篇文章主要介紹了swoole_process實(shí)現(xiàn)進(jìn)程池的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
PHP處理SQL腳本文件導(dǎo)入到MySQL的代碼實(shí)例
通常在制作安裝程式,數(shù)據(jù)備份程序的時(shí)候會(huì)要用到這樣的代碼,我看網(wǎng)上有是有不太多,而且有些也不是很好用,有時(shí)候這種代碼直接用現(xiàn)成的可以節(jié)省很多時(shí)間,那么我就從stackoverflow轉(zhuǎn)了一個(gè)過(guò)來(lái),需要的朋友可以參考下2014-03-03
Zend Framework數(shù)據(jù)庫(kù)操作技巧總結(jié)
這篇文章主要介紹了Zend Framework數(shù)據(jù)庫(kù)操作技巧,結(jié)合實(shí)例形式總結(jié)分析了Zend Framework針對(duì)數(shù)據(jù)庫(kù)操作的常見(jiàn)函數(shù)、常用操作及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-02-02
php中serialize序列化與json性能測(cè)試的示例分析
本篇文章介紹了,在php中serialize序列化與json性能測(cè)試的示例分析。需要的朋友參考下2013-04-04
基于php偽靜態(tài)的實(shí)現(xiàn)詳細(xì)介紹
本篇文章介紹了,基于php偽靜態(tài)的實(shí)現(xiàn)詳細(xì)分析。需要的朋友參考下2013-04-04

