亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > PHP如何獲取命令行參數(shù)

PHP如何獲取命令行參數(shù)

熱門標(biāo)簽:百度商鋪地圖標(biāo)注 注冊400電話申請 福州人工外呼系統(tǒng)哪家強(qiáng) 衡水外呼系統(tǒng)平臺 新河科技智能外呼系統(tǒng)怎么樣 常州地圖標(biāo)注服務(wù)商 安裝電銷外呼系統(tǒng) 地圖標(biāo)注平臺怎么給錢注冊 釘釘打卡地圖標(biāo)注

使用 PHP 開發(fā)的同學(xué)多少都會接觸過 CLI 命令行。經(jīng)常會有一些定時(shí)任務(wù)或者一些腳本直接使用命令行處理會更加的方便,有些時(shí)候我們會需要像網(wǎng)頁的 GET 、 POST 一樣為這些命令行腳本提供參數(shù)。比如在針對某些日期做統(tǒng)計(jì)的腳本,就需要傳遞一個(gè)日期給它,這樣我們就統(tǒng)計(jì)指定日期的一些數(shù)據(jù)。這類需求應(yīng)該非常常見,那么,我們都是如何來接收這些命令行的參數(shù)的呢?今天,就來介紹一下這方面的內(nèi)容。

$argv 獲得所有空格分隔的參數(shù)列表

這個(gè)變量估計(jì)是大家用得比較多的一個(gè)接參變量了。它是 PHP 為我們準(zhǔn)備好的一個(gè)固定變量,目的就是獲取傳遞給腳本的參數(shù)數(shù)組。

print_r($argv);
// php 如何獲取PHP命令行參數(shù).php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd 
// Array
// (
//     [0] => 如何獲取PHP命令行參數(shù).php
//     [1] => --a=1
//     [2] => -b=2
//     [3] => -c=3
//     [4] => -d=4
//     [5] => --e=5
//     [6] => ccc
//     [7] => ddd
// )

這個(gè)數(shù)組是以參數(shù)間隔的空格進(jìn)行分隔的。第1個(gè)元素是當(dāng)前運(yùn)行的腳本文件名,也就是說,不管有沒有參數(shù),這個(gè)變量一定會有一個(gè) $argv[0] 表示的是當(dāng)前的腳本文件名。

在日常的開發(fā)需求中,其實(shí)使用這個(gè)變量就已經(jīng)夠用了。但是這明顯不會是我們今天的主題,大家注意到上面的代碼中我們有很多參數(shù)是 -x=xxx 的形式,這種形式的參數(shù)是不是和 Linux 的命令選項(xiàng)非常像,沒錯(cuò),這就是我們今天要重點(diǎn)介紹的:從命令行參數(shù)列表中獲取選項(xiàng)。

getopt() 從命令行參數(shù)列表中獲取選項(xiàng)

其實(shí)就是這樣一個(gè)簡單的函數(shù),我們就可以像 Linux 的命令選項(xiàng)一樣獲取指定的命令值。而且不是像 $argv 按空格進(jìn)行分隔,命令選項(xiàng)函數(shù)會將這些命令選項(xiàng)封裝成數(shù)組,組成以選項(xiàng)名為鍵,以等號后面的內(nèi)容為值的數(shù)組,更加方便我們的使用。

// php 如何獲取PHP命令行參數(shù).php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd 
print_r(getopt('a:b:c:d:e:f:'));
// Array
// (
//     [b] => 2
//     [c] => 3
//     [d] => 4
// )

是不是很神奇,而且非常直觀吧,我們直接就拿到了 b 、 c 、d 的內(nèi)容并且是格式非常清晰的鍵值數(shù)組形式。有同學(xué)要問了,a 和 e 呢?還有后面的 ccc 、 ddd 呢?

首先要說明的是,ccc 和 ddd 不是標(biāo)準(zhǔn)的選項(xiàng)參數(shù),也就是說,這個(gè)函數(shù)接收的內(nèi)容是以 - 開頭的選項(xiàng),所以 ccc 和 ddd 不會在這里輸出,并且需要注意的是,非選項(xiàng)參數(shù)會中斷選項(xiàng)參數(shù)的獲取,在 ccc 之后如果繼續(xù)添加 - 開頭的選項(xiàng)也是無法獲取到的,這個(gè)我們后面還會看到。而 -- 開頭的選項(xiàng)參數(shù)呢?我們直接看下面的長選項(xiàng)功能。

長選項(xiàng)

// php 如何獲取PHP命令行參數(shù).php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd 
print_r(getopt('', ['a:','b:','c:','d:','e:','f:']));
// Array
// (
//     [a] => 1
//     [e] => 5
// )

沒錯(cuò),getopt() 函數(shù)的第二個(gè)參數(shù)就是定義這種 -- 開頭的長選項(xiàng)的,而且需要注意的是,第一個(gè)參數(shù)是字符串類型,第二個(gè)長選項(xiàng)參數(shù)是數(shù)組類型的。那么我們把它們結(jié)合起來,就當(dāng)然可以獲取到全部的參數(shù)信息啦!

// php 如何獲取PHP命令行參數(shù).php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd 
print_r(getopt('a:b:c:d:e:f:', ['a:','b:','c:','d:','e:','f:']));
// Array
// (
//     [a] => 1
//     [b] => 2
//     [c] => 3
//     [d] => 4
//     [e] => 5
// )

OK,參數(shù)選項(xiàng)獲取沒問題了吧,細(xì)心的同學(xué)肯定又發(fā)現(xiàn)了一個(gè)問題,這個(gè) getopt() 函數(shù)的參數(shù)中定義的選項(xiàng)名稱后面為啥都要加個(gè)冒號?這就涉及到我們的冒號規(guī)則了,請直接往下看。

冒號規(guī)則

getopt() 的前兩個(gè)參數(shù)都支持一套關(guān)于選項(xiàng)獲取的規(guī)則:

  • 單獨(dú)的字符(不接受值)
  • 后面跟隨冒號的字符(此選項(xiàng)需要值)
  • 后面跟隨兩個(gè)冒號的字符(此選項(xiàng)的值可選)

我們還是直接通過代碼來看一下。

// 一
// php 如何獲取PHP命令行參數(shù).php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd 
print_r(getopt('abcdef'));
// Array
// (
//     [b] => 
//     [c] => 
//     [d] => 
// )

// 二
// php 如何獲取PHP命令行參數(shù).php -f
print_r(getopt('f::'));
// Array
// (
//     [f] => 
// )
print_r(getopt('f:'));
// Array
// (
// )

// 三
// php 如何獲取PHP命令行參數(shù).php -f 22
print_r(getopt('f::'));
// Array
// (
//     [f] => 
// )
print_r(getopt('f:'));
// Array
// (
//     [f] => 22
// )

// 四
// php 如何獲取PHP命令行參數(shù).php -f=22
print_r(getopt('f::'));
// Array
// (
//     [f] => 22
// )
print_r(getopt('f:'));
// Array
// (
//     [f] => 22
// )

這一段比較長,我們一塊一塊來看。首先是不帶冒號的 abcdef 寫法,返回的數(shù)組中都包含鍵,但沒有值,對應(yīng)上面的規(guī)則就是不接受這些參數(shù)選項(xiàng)的值,你傳了這些參數(shù)選項(xiàng)也是只有鍵名而內(nèi)容是空的。

第二段是定義了一個(gè)參數(shù),但是不給值,這時(shí),雙冒號 :: 會有鍵名,而單冒號 : 則什么都沒有。

第三段是空格形式的選項(xiàng)值,雙冒號 :: 有鍵名但沒有值,單冒號 : 鍵值正常。

第四段是等號 = 形式的選項(xiàng)值,單雙冒號都正常接收到鍵值。

選項(xiàng)參數(shù)中斷

上文中我們提到過參數(shù)中斷的問題,就是在選項(xiàng)參數(shù)之后如果有一個(gè)非選項(xiàng)參數(shù)的參數(shù)出現(xiàn),getopt() 就無法再獲取到這個(gè)非選項(xiàng)參數(shù)后面的所有內(nèi)容了。

// php 如何獲取PHP命令行參數(shù).php -f=22 aa -b=33
// 選項(xiàng)的解析會終止于找到的第一個(gè)非選項(xiàng),之后的任何東西都會被丟棄。
// Array
// (
//     [f] => 22
// )

通過這個(gè)測試可以清晰的看出后面的 b 選項(xiàng)無法獲取。這時(shí),如果我們想知道選項(xiàng)參數(shù)在什么地方或者因?yàn)槟膫€(gè)參數(shù)而中斷的話,就可以使用 getopt() 函數(shù)的第三個(gè)參數(shù)了。

// php 如何獲取PHP命令行參數(shù).php -f=22 aa -b=33
$optind = null;
getopt('f:b:', [], $optind);
echo $optind, PHP_EOL; // 返回中斷位置的索引值,2
echo $argv[$optind], PHP_EOL; // 等同于 $argv 的索引順序,aa

注釋已經(jīng)寫得很清晰了,第三個(gè)參數(shù)會回調(diào)一個(gè)參數(shù)選項(xiàng)中斷位置的索引,并且這個(gè)索引是和 $argv 的索引順序位置一致的。

總結(jié)

說實(shí)話,在沒看文檔前真的只知道有一個(gè) $argv 變量可以用來獲取命令行腳本的參數(shù),通過這次學(xué)習(xí)才發(fā)現(xiàn)原來還有一個(gè)這么強(qiáng)大的選項(xiàng)參數(shù)函數(shù)。學(xué)習(xí)的過程非常簡單,如何運(yùn)用到真實(shí)的項(xiàng)目中才是關(guān)鍵所在,加油學(xué)習(xí),努力實(shí)踐吧!

測試代碼:

github.com/zhangyue050…

以上就是PHP如何獲取命令行參數(shù)的詳細(xì)內(nèi)容,更多關(guān)于PHP 獲取命令行參數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • php命令行模式代碼實(shí)例詳解
  • php web環(huán)境和命令行環(huán)境下查找php.ini的位置
  • php根據(jù)命令行參數(shù)生成配置文件詳解
  • php命令行寫shell實(shí)例詳解
  • 命令行執(zhí)行php腳本中的$argv和$argc配置方法
  • 利用PHP命令行模式采集股票趨勢信息
  • 基于命令行執(zhí)行帶參數(shù)的php腳本并取得參數(shù)的方法
  • php生成curl命令行的方法
  • 實(shí)例講解yii2.0在php命令行中運(yùn)行的步驟
  • 如何通過Linux命令行使用和運(yùn)行PHP腳本
  • PHP的命令行擴(kuò)展Readline相關(guān)函數(shù)的使用

標(biāo)簽:唐山 鷹潭 鶴崗 克拉瑪依 遼陽 柳州 白城 六安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP如何獲取命令行參數(shù)》,本文關(guān)鍵詞  PHP,如何,獲取,命令行,參數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP如何獲取命令行參數(shù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP如何獲取命令行參數(shù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    毛片电影网| 精品国产亚一区二区三区| 国产精品免费精品自在线观看| 久久精品欧美一区二区| 九九精品在线播放| 久草免费在线观看| 国产成人欧美一区二区三区的| 日韩欧美一及在线播放| 九九精品久久久久久久久| 国产伦精品一区二区三区无广告| 精品国产亚一区二区三区| 毛片电影网| 免费国产在线观看不卡| 日本伦理片网站| 天天做人人爱夜夜爽2020毛片| 国产a毛片| 国产原创视频在线| 亚欧成人毛片一区二区三区四区| 午夜激情视频在线观看| 四虎影视精品永久免费网站| 99久久精品国产高清一区二区 | 韩国三级一区| 美女免费精品视频在线观看| 国产一区二区精品久| 欧美大片毛片aaa免费看| 午夜欧美成人久久久久久| 四虎影视库| 国产视频一区二区三区四区| 欧美18性精品| 日韩专区第一页| 午夜久久网| 久久福利影视| 二级片在线观看| 成人影视在线播放| 国产网站免费视频| 国产91素人搭讪系列天堂| 日韩专区第一页| 中文字幕一区二区三区精彩视频| 日韩男人天堂| 久久成人亚洲| 国产一区二区精品久久91| 久久国产一久久高清| 国产91视频网| 九九久久99| 高清一级毛片一本到免费观看| a级黄色毛片免费播放视频| 高清一级做a爱过程不卡视频| a级黄色毛片免费播放视频| 日本特黄一级| 香蕉视频一级| 韩国三级香港三级日本三级| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩免费在线观看视频| 欧美一级视频免费| 在线观看导航| 久久国产精品永久免费网站| 国产伦理精品| 免费毛片基地| 夜夜操天天爽| 99色精品| 国产伦久视频免费观看视频| 黄色免费三级| 国产一区二区精品在线观看| 精品国产三级a∨在线观看| 青青久热| 国产激情视频在线观看| 国产极品白嫩美女在线观看看| 91麻豆高清国产在线播放| 国产一区二区精品| 国产视频一区二区三区四区| 午夜在线观看视频免费 成人| 欧美激情一区二区三区在线 | 亚洲精品中文一区不卡| 日韩免费在线观看视频| 国产成人精品在线| 青青久在线视频| 精品国产一区二区三区免费| 日韩一级黄色| 精品久久久久久中文字幕2017| 天天做人人爱夜夜爽2020毛片| 欧美大片毛片aaa免费看| 毛片高清| 国产不卡在线观看视频| 99久久精品国产麻豆| 亚欧乱色一区二区三区| 九九久久国产精品| 国产福利免费视频| 亚洲第一页乱| 99久久精品国产高清一区二区 | 一级女性全黄久久生活片| 国产高清视频免费| 色综合久久天天综线观看| 黄视频网站免费看| 日韩专区第一页| 天天做人人爱夜夜爽2020| 精品毛片视频| 亚洲精品中文一区不卡| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品视频在线看| 久久99这里只有精品国产| 午夜在线亚洲| 精品久久久久久中文字幕一区| 黄色免费三级| 四虎久久精品国产| 精品在线视频播放| 国产成人啪精品视频免费软件| 九九久久国产精品大片| 台湾毛片| 国产伦精品一区二区三区在线观看| 国产国语对白一级毛片| 国产福利免费视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 成人a大片在线观看| 欧美日本二区| 青青久久精品| 九九久久99综合一区二区| 久久精品免视看国产成人2021| 四虎论坛| 国产成人啪精品视频免费软件| 午夜家庭影院| 成人影视在线播放| 国产麻豆精品视频| 色综合久久天天综线观看| 日韩专区在线播放| 欧美激情一区二区三区中文字幕| 免费毛片基地| 欧美a级大片| 天天做日日干| 日韩avdvd| 日韩中文字幕在线播放| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 成人免费一级毛片在线播放视频| 国产国语对白一级毛片| 中文字幕97| 亚洲天堂一区二区三区四区| 免费国产一级特黄aa大片在线| 日韩av东京社区男人的天堂| 四虎影视精品永久免费网站| 久久精品大片| 国产网站免费视频| 黄色免费三级| 你懂的福利视频| 麻豆网站在线免费观看| 日本伦理片网站| 国产原创视频在线| 成人影视在线播放| a级黄色毛片免费播放视频| 精品在线免费播放| 韩国毛片基地| 国产福利免费观看| 亚欧视频在线| 一级片片| 青青久热| 日本伦理片网站| 欧美18性精品| 日日日夜夜操| 精品国产一区二区三区国产馆| 黄色福利片| 国产网站麻豆精品视频| 国产一级生活片| 精品国产一区二区三区久| 欧美激情影院| 亚洲女人国产香蕉久久精品 | 日韩欧美一二三区| 高清一级片| 日韩avdvd| 你懂的福利视频| 青青青草影院 | 沈樵在线观看福利| 一级女性大黄生活片免费| 欧美爱爱动态| 国产伦理精品| 精品国产亚一区二区三区| 国产一区二区精品| 日韩字幕在线| 夜夜操天天爽| 日本免费乱理伦片在线观看2018| 毛片电影网| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 成人影院久久久久久影院| 日韩中文字幕一区二区不卡| 欧美另类videosbestsex久久| 天天做日日爱夜夜爽| 欧美国产日韩一区二区三区| 精品久久久久久影院免费| 999久久狠狠免费精品| 欧美一区二区三区性| 欧美电影免费看大全| 精品在线观看国产| 91麻豆高清国产在线播放| 黄色免费三级| 久久精品大片| 尤物视频网站在线观看| 国产原创视频在线| 国产伦久视频免费观看 视频| 免费的黄视频| 午夜激情视频在线观看| 美女免费黄网站| 午夜精品国产自在现线拍| 久久国产影视免费精品|