我有一个小问题,我想创建一个可以从外部程序或其他任何东西调用的简单php脚本。 我试过了:
<?php
var_dump($argv);
?>
然后将其称为http://localhost/test/script.php?a=test
我得到了:
undefined argv
shell中的一切都很好:
php -q script.php foo bar
array(3) {
[0]=>
string(10) "script.php"
[1]=>
string(3) "foo"
[2]=>
string(3) "bar"
}
当我使用$argv = $_GET;
时,我得到HTTP工作:http://localhost/test/script.php?test="abc"
给出array(1) { ["test"]=> string(5) ""abc"" }
但shell给出数组(0)!!!!!
如何才能从命令行和Web浏览器中调用它。 ? 非常感谢
答案 0 :(得分:0)
$ argv仅用于从命令行运行脚本时获取参数。 (doc)
如果您想从网址获取参数,则应使用$_GET。
<?php
$a = $_GET['a'];
echo $a;
?>
如果您想获取所有URL参数,可以使用var_dump($ _ GET);
答案 1 :(得分:0)
这里的问题是,$ _GET是仅来自URL的参数,其中$ argv仅在您通过命令行调用它时。
为什么不检查(isset)是否存在参数(以及命令行或URL中的内容)。
<?php
if(isset($_GET)) {
$parameters = $_GET;
} else if(isset($argv)) {
$parameters = $argv;
} else {
// no parameters
}
?>