是否可以从不通过Web服务器与脚本连接的程序执行PHP代码?最初,我想到了CLI PHP解释器,但它不包含网站请求常见的任何$ _SERVER或$ _REQUEST变量。
那么,如果有可能效仿,那么如何才能得到说明呢?我没有考虑任何特定的编程语言,因为我确信webservers和php之间存在一些与平台无关的通用接口。
这个问题的目的是构建一个可以作为Web服务器运行的Node.JS应用程序,然后(在需要时)可以执行PHP脚本(使用特定输入),获取响应,然后在需要时进行一些额外的处理。输出,然后将其写入客户端。
答案 0 :(得分:3)
除非你想为Node.JS构建一个PHP模块,我认为CLI是你唯一的选择 - 你可以通过命令行传递所需的变量,我想没有什么可以反对在脚本中重建它们:
php -f myscript.php /websites/myscript domain.com 1.2.3.4.5
现在,理想的方式是获取这些参数并将它们写入您在脚本中使用的变量。
如果你有一个使用$_SERVER
的现有脚本,并且不想重写它,那么这将是一个有效但不优雅的解决方法。 (不太优雅,因为你通常不应该写入$_SERVER
,$_GET
等。)
$_SERVER["REQUEST_URI"] = $argv[1];
$_SERVER["SERVER_NAME"] = $argv[2];
$_SERVER["REMOTE_ADDR"] = $argv[3];
(我不是相当确定是否覆盖像这样的服务器变量是犹太人,感觉有点不对。但它绝对适用于标准设置。我会问PHP聊天的人他们的想法......编辑:没有人真的喜欢它,但似乎没有任何重大缺点)