$ argv数组包含几乎相同的值,我找不到谁拥有确切的值.我的意思是所有逃避/取消特殊符号都会消失.因此,我无法将相同的参数传递给另一个脚本(或者只是记录被调用的精确命令),而无需重新处理,这是我想避免使用的无用代码.
这是一个测试php文件:
<?php
var_dump($_SERVER["argv"]);
Run Code Online (Sandbox Code Playgroud)
示范:
[denis@mypc ~]$ php test.php key="val space" key2=val\ space
array(3) {
[0]=>
string(8) "test.php"
[1]=>
string(13) "key=val space"
[2]=>
string(14) "key2=val space"
}
Run Code Online (Sandbox Code Playgroud)
所以,如果我然后使用join("",$ argv),我会得到:
test.php key=val space key2=val space
Run Code Online (Sandbox Code Playgroud)
哪个是不一样的呼叫(包含4个参数,而不是2个).
再说一次:理想情况下,我需要获得完全相同的命令.
你必须像这样处理你的论点
$arguments = $argv;
array_shift($arguments);
foreach($arguments as $value) {
$pieces = explode('=',$value);
if(count($pieces) >= 2) {
$real_key = $pieces[0];
array_shift($pieces);
$real_value = implode('=', $pieces);
$real_arguments[$real_key] = $real_value;
}
}
Run Code Online (Sandbox Code Playgroud)
数组$real_arguments包含进程值
| 归档时间: |
|
| 查看次数: |
1555 次 |
| 最近记录: |