我的本地计算机上有一个名为testsite的计算机上的网站。它在我的apache localhost
所以我可以从浏览器访问页面http://localhost/testsite/index.php?p=763
。
index.php包含其他php文件。 index.php从文件夹中的许多其他php文件来回调用。
所以我进入文件夹testsite并发出了命令
php index.php ?p=763
但它只显示index.php的结果,但不显示?p=763
变量
此外,我想知道我何时运行php index.php
如何列出它经历的所有php文件(因为从其他文件中调用了各种函数)。
答案 0 :(得分:2)
您可以在PHP脚本的开头添加以下内容:
if (isset($argv[1]) && $argv[1][0] == '?') {
parse_str(substr($argv[1], 1), $_GET);
}
它会自动解析包含查询参数的参数,并将它们存储在$ _GET变量中(从而在浏览器请求时生成它)。
不过,我不建议依赖这种方法。您应该更改您的应用程序,以便它能正确处理命令行参数。
要查看包含的所有文件,您应该使用脚本末尾的get_included_files
函数:
print_r(get_included_files());
答案 1 :(得分:1)
$ _ GET仅对使用您的浏览器访问的页面有效。从控制台,检查$ argv。见https://stackoverflow.com/a/9612273/1349128
答案 2 :(得分:0)
如果您确实想在CLI上运行专为Web请求设计的脚本,可以通过从argv手动设置$_POST
和$_GET
变量来作弊
看这篇文章: http://edmondscommerce.github.io/php/running-php-scripts-on-cli-and-faking-a-web-request.html