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

