我正在尝试在控制器中运行此代码
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 也没有被美化,文件被美化。
我正在尝试在控制器中运行此代码
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 也没有被美化,文件被美化。
这很可能与路径有关。您将需要提供两者的完整路径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 的错误,而不是什么都没有。