我正在尝试在控制器中运行此代码
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也没有被美化。
答案 0 :(得分:0)
这可能与路径有关。您将需要提供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-beautify(或带有-f标志),这意味着如果读取文件时出现错误,您将看到js-beautify的错误而不是什么。