Navigation menu

0755-82192581
  • Contact us
  • 0755-82192581
  • 深圳市罗湖区佳宾路深华贸易大厦9楼(地铁1号线国贸站B出口既是)

    3375726676@qq.com


    © 2007-2021 All Rights Reserved.
  • 战略型高端网站设想公司

    Strategic advanced website design company

    View More
  • 网站开辟若何利用 PHP或 getopt获得号令行参数

    时辰:2022-12-20  作者:尼高GARY  来历:http://expovol.com
    在咱们遏制网站开辟时,当用户要求网页时,咱们编写的任何 PHP 代码凡是都在办事器上运转。可是,也能够经由过程 CLI 或号令行界面运转剧本。偶然须要编写在号令提醒符中履行时能够接管参数的 PHP 剧本。如许做的缘由有良多,从易用性到特定使命的主动化。


    网站开辟

    当您从 Web 阅读器要求页面时,参数作为查问参数通报。在办事器端,咱们利用 superglobal 拜候这些参数中的值$_GET。可怜的是,当您在号令提醒符中运转剧本时,此手艺将不起感化。这是由于号令提醒符须要差别格局的剧本参数。

    PHP 中有两个预约义变量被挪用$argc,$argv它们可用于处置号令行参数。该变量$argc只是告知您通报给剧本的参数数目。请记着,您正在运转的剧本的称号一直被视为参数。这象征着 的最小值$argc将为 1。该变量$argv更有赞助,由于它是通报给剧本的参数数组并包罗它们的现实值。您能够利用轮回遍历一切值foreach。

    咱们在后面的示例顶用于拜候号令行参数的体例存在一些毛病谬误。比方,咱们假定参数将根据咱们在剧本中处置它们的挨次供给。可是,环境能够并非老是如斯。

    getopt()PHP 中的函数是拜候一切这些参数的好体例,而无需过量担忧它们的挨次等。它有一个必需参数和两个可选参数。

    1、short_options:号令行中的短选项以单个连字符开首。传入此字符串的每一个字符都与通报给剧本的选项相婚配。
    2、long_options:这个可选参数接管一个数组。数组中的每一个元素(一个字符串)都与通报给剧本的选项相婚配,这些选项以两个连字符开首。
    3、rest_index:可选的第三个参数用于存储参数剖析遏制的索引。
    不管是short_options和long_options遵照特定的商定来通报给剧本剖析值。单个字符和字符串不接管任何值。后跟冒号的字符和字符串表现所需的值。后跟两个冒号的字符和字符串表现可选值。这里有些例子:

    1、-g并且--grayscale二者都不会接管任何值。咱们将在剧本中利用它们将图象转换为灰度。
    2、-f:并且--filename:二者都须要通报给它们的值。咱们将利用它们来确保用户向咱们供给能够利用过滤器的图象文件。
    3、-c::并且--contrast::二者都将接管一个可选值。咱们将利用它们为用户供给不不须要地变动图象对照度的选项。这一样合用于-b::和--brightness::。
    您应当记着的一件事是,由 前往的数组getopt()不包罗参数列表中贫乏的元素。另外,参数列表中存在的不指定值的元素被设置为false。

    咱们已看到,当剧本在 Web 办事器上运转和在 CLI 中运转时,须要利用差别的代码来拜候参数值。可是,这并不象征着您将须要统一剧本的两个正本能力在差别的环境中运转。有一个被挪用的函数php_sapi_name()会告知你你的代码是在 Web 办事器仍是 CLI 中运转。

    良多时辰咱们必须编写代码来处置供给的输出以供给一些输出。凡是环境下,输出被处置$_GET和$_PUT当剧本在办事器上运转。可是,偶然您须要经由过程 CLI 运转剧本,这须要您利用$argv或getopt()。Usinggetopt()在处置参数时为您供给了更大的矫捷性,并为您实现了一些沉重的剖析任务。

    相干案例

    OTHER CASE