php去除空数组_PHP: array_shift - Manual

Here's a utility function to parse command line arguments.

* CommandLine class

*

* @package             Framework

*/

/**

* Command Line Interface (CLI) utility class.

*

* @author              Patrick Fisher

* @since               August 21, 2009

* @package             Framework

* @subpackage          Env

*/classCommandLine{/**

* PARSE ARGUMENTS

*

* [pfisher ~]$ echo "<?php

* >     include('CommandLine.php');

* >     \$args = CommandLine::parseArgs(\$_SERVER['argv']);

* >     echo "\n", '\$out = '; var_dump(\$args); echo "\n";

* > ?>" > test.php

*

* [pfisher ~]$ php test.php plain-arg --foo --bar=baz --funny="spam=eggs" --alsofunny=spam=eggs \

* > 'plain arg 2' -abc -k=value "plain arg 3" --s="original" --s='overwrite' --s

*

* $out = array(12) {

*   [0]                => string(9) "plain-arg"

*   ["foo"]            => bool(true)

*   ["bar"]            => string(3) "baz"

*   ["funny"]          => string(9) "spam=eggs"

*   ["alsofunny"]      => string(9) "spam=eggs"

*   [1]                => string(11) "plain arg 2"

*   ["a"]              => bool(true)

*   ["b"]              => bool(true)

*   ["c"]              => bool(true)

*   ["k"]              => string(5) "value"

*   [2]                => string(11) "plain arg 3"

*   ["s"]              => string(9) "overwrite"

* }

*

* @author              Patrick Fisher

* @since               August 21, 2009

* @see                 http://www.php.net/manual/en/features.commandline.php

*                      #81042 function arguments($argv) by technorati at gmail dot com, 12-Feb-2008

*                      #78651 function getArgs($args) by B Crawford, 22-Oct-2007

* @usage               $args = CommandLine::parseArgs($_SERVER['argv']);

*/public static functionparseArgs($argv){array_shift($argv);$out= array();

foreach ($argvas$arg){// --foo --bar=bazif (substr($arg,0,2) =='--'){$eqPos=strpos($arg,'=');// --fooif ($eqPos===false){$key=substr($arg,2);$value= isset($out[$key]) ?$out[$key] :true;$out[$key]          =$value;

}// --bar=bazelse {$key=substr($arg,2,$eqPos-2);$value=substr($arg,$eqPos+1);$out[$key]          =$value;

}

}// -k=value -abcelse if (substr($arg,0,1) =='-'){// -k=valueif (substr($arg,2,1) =='='){$key=substr($arg,1,1);$value=substr($arg,3);$out[$key]          =$value;

}// -abcelse {$chars=str_split(substr($arg,1));

foreach ($charsas$char){$key=$char;$value= isset($out[$key]) ?$out[$key] :true;$out[$key]      =$value;

}

}

}// plain-argelse {$value=$arg;$out[]                  =$value;

}

}

return$out;

}

}?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值