在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