shell_exec 的输出被截断为 100 个字符

2024-05-15

当在 shell 中运行以下命令时,

curl -F file=@filename http://192.168.0.1

产生以下输出:

Accuracy = 0% (0/1) (classification)
Accuracy = 0% (0/1) (classification)
Accuracy = 0% (0/1) (classification)
Accuracy = 0% (0/1) (classification)
verdict = success!

当我在 php 中运行它时,可以使用shell_exec(), exec()或反引号运算符,

$verdict = `curl -F file=@$filename $url`;

我得到以下输出:

Accuracy = 0% (0/1) (classification)
Accuracy = 0% (0/1) (classification)
Accuracy = 0% (0/1) (class

输出被截断为 100 个字符。我一生都无法弄清楚这是为什么。这是为什么?如何获取 php 变量中的完整输出?


您可以避免通过终端执行 cURL 操作,因为

  • 很可能并非每个服务器都支持通过代码执行命令。
  • 安全模式很可能在生产中启用。
  • 并非每个在终端中执行上述命令的用户都有执行权限。
  • 并非每个执行上述命令的用户都没有指定命令的完整路径(例如 /usr/bin/curl)

考虑使用 PHP 的内置cURL http://php.net/manual/en/function.curl-setopt.php通过选项来实现这一点

CURLOPT_POSTFIELDS
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell_exec 的输出被截断为 100 个字符 的相关文章

随机推荐