我有一个 PHP 脚本,可以根据用户输入创建其他 PHP 文件。基本上,有一些文件包含特定于语言的常量(define
)可由用户翻译。为了避免运行时错误,我想测试新编写的文件是否存在解析错误(由于“不寻常”的字符序列)。我在这里读过几篇关于SO的文章(比如PHP 包含有解析错误的文件)并尝试了一个使用的函数
$output = exec("php -l $filename");
确定文件是否正确解析。这在我的本地计算机上完美运行,但在提供者的计算机上,调用的输出exec("php ...")
似乎永远都是空的。我尝试拨打电话ls
它给了我输出,让我假设 PHP 以某种方式配置为不对命令行调用做出反应。有谁知道解决这个问题的方法吗?
EDIT:我忘了说了,我已经尝试过了shell_exec
它也没有给出任何结果。回应 sganesh 的回答:我也尝试过,抱歉我忘了提及。但是,无论要测试的 PHP 文件是否存在语法错误,输出(第二个参数)始终为空数组,并且返回值始终为 127。
我有同样的问题。对我有用的解决方案是在从 php 运行时没有输出。我需要添加输出重定向。
$output = exec("php -l $filename 2>&1");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)