0

我正在尝试在控制器中运行此代码

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 也没有被美化,文件被美化。

4

1 回答 1

0

这很可能与路径有关。您将需要提供两者的完整路径m.htmljs-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 的错误,而不是什么都没有。

于 2019-02-27T13:28:43.483 回答