在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()或backtick运算符,
$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选项通过

CURLOPT_POSTFIELDS

09-25 23:26