亚洲欧洲中文日韩乱码av,亚洲国产精久久久久久久,亚洲欧美日韩久久精品,亚洲欧美日韩国产 ,亚洲av之男人的天堂网站,亚洲av高清在线观看一区二区

Navigation menu

0755-82192581
  • Contact us
  • 0755-82192581
  • 深圳市羅湖區(qū)嘉賓路太平洋商貿(mào)大廈19樓

    3375726676@qq.com


    © 2007-2025 All Rights Reserved.
  • 策略型高端網(wǎng)站設(shè)計(jì)公司

    Strategic advanced website design company

    View More
  • 網(wǎng)站開發(fā)如何使用 PHP或 getopt獲取命令行參數(shù)

    時(shí)間:2021-12-20  作者:尼高GARY  來(lái)源:http://654254.cn
    在我們進(jìn)行網(wǎng)站開發(fā)時(shí),當(dāng)用戶請(qǐng)求網(wǎng)頁(yè)時(shí),我們編寫的任何 PHP 代碼通常都在服務(wù)器上運(yùn)行。但是,也可以通過 CLI 或命令行界面運(yùn)行腳本。有時(shí)需要編寫在命令提示符中執(zhí)行時(shí)可以接受參數(shù)的 PHP 腳本。這樣做的原因有很多,從易用性到特定任務(wù)的自動(dòng)化。


    網(wǎng)站開發(fā)

    當(dāng)您從 Web 瀏覽器請(qǐng)求頁(yè)面時(shí),參數(shù)作為查詢參數(shù)傳遞。在服務(wù)器端,我們使用 superglobal 訪問這些參數(shù)中的值$_GET。不幸的是,當(dāng)您在命令提示符中運(yùn)行腳本時(shí),此技術(shù)將不起作用。這是因?yàn)槊钐崾痉枰煌袷降哪_本參數(shù)。

    PHP 中有兩個(gè)預(yù)定義變量被調(diào)用$argc,$argv它們可用于處理命令行參數(shù)。該變量$argc只是告訴您傳遞給腳本的參數(shù)數(shù)量。請(qǐng)記住,您正在運(yùn)行的腳本的名稱始終被視為參數(shù)。這意味著 的最小值$argc將為 1。該變量$argv更有幫助,因?yàn)樗莻鬟f給腳本的參數(shù)數(shù)組并包含它們的實(shí)際值。您可以使用循環(huán)遍歷所有值foreach。

    我們?cè)谇懊娴氖纠杏糜谠L問命令行參數(shù)的方法存在一些缺點(diǎn)。例如,我們假設(shè)參數(shù)將按照我們?cè)谀_本中處理它們的順序提供。然而,情況可能并非總是如此。

    getopt()PHP 中的函數(shù)是訪問所有這些參數(shù)的好方法,而無(wú)需過多擔(dān)心它們的順序等。它有一個(gè)必需參數(shù)和兩個(gè)可選參數(shù)。

    1、short_options:命令行中的短選項(xiàng)以單個(gè)連字符開頭。傳入此字符串的每個(gè)字符都與傳遞給腳本的選項(xiàng)相匹配。
    2、long_options:這個(gè)可選參數(shù)接受一個(gè)數(shù)組。數(shù)組中的每個(gè)元素(一個(gè)字符串)都與傳遞給腳本的選項(xiàng)相匹配,這些選項(xiàng)以兩個(gè)連字符開頭。
    3、rest_index:可選的第三個(gè)參數(shù)用于存儲(chǔ)參數(shù)解析停止的索引。
    無(wú)論是short_options和long_options遵循特定的約定來(lái)傳遞給腳本解析值。單個(gè)字符和字符串不接受任何值。后跟冒號(hào)的字符和字符串表示所需的值。后跟兩個(gè)冒號(hào)的字符和字符串表示可選值。這里有些例子:

    1、-g并且--grayscale兩者都不會(huì)接受任何值。我們將在腳本中使用它們將圖像轉(zhuǎn)換為灰度。
    2、-f:并且--filename:兩者都需要傳遞給它們的值。我們將使用它們來(lái)確保用戶向我們提供可以應(yīng)用過濾器的圖像文件。
    3、-c::并且--contrast::兩者都將接受一個(gè)可選值。我們將使用它們?yōu)橛脩籼峁┎徊槐匾馗膱D像對(duì)比度的選項(xiàng)。這同樣適用于-b::和--brightness::。
    您應(yīng)該記住的一件事是,由 返回的數(shù)組getopt()不包含參數(shù)列表中缺少的元素。此外,參數(shù)列表中存在的沒有指定值的元素被設(shè)置為false。

    我們已經(jīng)看到,當(dāng)腳本在 Web 服務(wù)器上運(yùn)行和在 CLI 中運(yùn)行時(shí),需要使用不同的代碼來(lái)訪問參數(shù)值。但是,這并不意味著您將需要同一腳本的兩個(gè)副本才能在不同的環(huán)境中運(yùn)行。有一個(gè)被調(diào)用的函數(shù)php_sapi_name()會(huì)告訴你你的代碼是在 Web 服務(wù)器還是 CLI 中運(yùn)行。

    很多時(shí)候我們必須編寫代碼來(lái)處理提供的輸入以提供一些輸出。通常情況下,輸入被處理$_GET和$_PUT當(dāng)腳本在服務(wù)器上運(yùn)行。但是,有時(shí)您需要通過 CLI 運(yùn)行腳本,這需要您使用$argv或getopt()。Usinggetopt()在處理參數(shù)時(shí)為您提供了更大的靈活性,并為您完成了一些繁重的解析工作。

    相關(guān)案例

    OTHER CASE