我试图在控制器中运行这段代码
echo shell_exec(' echo 3');
echo shell_exec('cat m.html | js-beautify --type html -o m.html ; echo 43');
echo shell_exec(' echo 53');我得到了产出
3 53
而且m.html也没有被美化,当我通过命令行运行相同的命令时,文件也被美化了。
发布于 2019-02-27 13:28:43
这很可能与路径有关。您需要为m.html和js-beautify可执行文件提供完整的路径。还要确保为web服务器用户设置了相关的执行权限。
// get the location of m.html if it's in the same folder as your PHP file
$path = dirname(__FILE__) . '/m/html';
echo shell_exec("/path/to/js-beautify --type html -o $path -f $path');可能值得删除-o文件并让输出转到标准输出,即传递回您的网页,这样您就可以看到它是否正在写入同一个文件。或者也检查一下时间戳?
此外,我相信您可以直接将文件传递给js-美化(或使用-f标志),这意味着如果读取您的文件时出错,您将看到js-美化的错误而不是什么都没有。
https://stackoverflow.com/questions/54906372
复制相似问题