首页 / PHP / php的命令行选项解析,howto
php的命令行选项解析,howto
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php的命令行选项解析,howto,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1541字,纯文字阅读大概需要3分钟。
内容图文
![php的命令行选项解析,howto](/upload/InfoBanner/zyjiaocheng/747/fd452547061b46339e675e39d988655b.jpg)
我在PHP 5.2中使用Console_Getopt,并且发现它与其他语言中的getopt有多么不同(perl,bash,java).任何人都可以推荐如何解析返回的数组“$opts”中的args?
php myprog.php -a varA -c -b varB
$o= new Console_Getopt;
$opts = $o->getopt($argv, "a:b:c");
print_r($opts);
// print_r返回下面
Array
(
[0] => Array
(
[0] => Array
(
[0] => a
[1] => varA
)
[1] => Array
(
[0] => c
[1] =>
)
[2] => Array
(
[0] => b
[1] => varB
)
)
[1] => Array
(
)
)
我开始做类似下面的事情,这是冗长的,所以我正在寻找有关处理php中的命令行标志的建议.
foreach($opts[0] as $i -> $keyval) {
list($key, $val) = $keyval;
if($key == 'a') {
print "valueForA: $val\n";
} else if($key == 'b') {
print "valueForB: $val\n";
} else if($key == 'c') {
print "c is set\n";
}
}
我想知道为什么PHP的getopt不像perl那样,数组的关键是标志,例如$opts {‘a’} ..这很方便.
解决方法:
根据内联文档
The return value is an array of two elements: the list of parsed
options and the list of non-option command-line arguments. Each entry in
the list of parsed options is a pair of elements – the first one
specifies the option, and the second one specifies the option argument,
if there was one.
这意味着您可以轻松地丢弃第二个数组,并承担保留数组数组,第一个元素选项,第二个元素值,格式的承诺.
有了这个假设,试试吧
$o= new Console_Getopt;
$opts = $o->getopt($argv, "a:b:c");
print_r(getHashOfOpts($opts));
function getHashOfOpts($opts) {
$opts = $opts[0];
$return_opts = $opts;
$return_opts = Array();
foreach($opts as $pair){
$return_opts[$pair[0]] = $pair[1];
}
return $return_opts;
}
获得更多您喜欢的数据结构.
至于为什么这与getopt的其他实现不同,请问the maintainers.
内容总结
以上是互联网集市为您收集整理的php的命令行选项解析,howto全部内容,希望文章能够帮你解决php的命令行选项解析,howto所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。