如何防止 system() 函数在浏览器中打印输出?
我正在使用 system()
PHP 函数来运行一些像这样的curl命令system("curl command here",$output);
但它会在屏幕上显示结果。有什么办法可以避免这种输出吗?
I'm using system()
PHP function to run some curl commands like this system("curl command here",$output);
but it displays results on screen. Any way to avoid this output?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您为此使用了错误的函数。根据文档:
所以它总是输出。使用
exec
文档相反,它返回(而不是输出)程序输出:或者(只是为了完整性)使用 输出缓冲文档:
You're using the wrong function for that. According to the docs:
So it always outputs. Use
exec
Docs instead which does return (and not output) the programs output:Or (just for completeness) use output bufferingDocs:
您可以尝试使用输出缓冲。
You coud try using output buffering.
您可以修改命令字符串并附加“ 1>/dev/null 2>&1”,或者 - 更优雅 - 使用 管道(参见示例#2)。
要对进程的文件句柄进行更精细的控制,您还可以使用
proc_open()
。You could either modify the command string and append " 1>/dev/null 2>&1" or - more elegantly - execute the process with a pipe (see example #2).
For a more refined control over the process' file handles, you can also use
proc_open()
.system 函数显示命令的输出,所以你运气不好。
您想要的是将
system
更改为 exec。该函数不会显示命令的输出。The system function displays the output from your command, so you're out of luck there.
What you want is to change
system
for exec. That function will not display the command's output.不,你应该使用 PHP curl 库
No, you should use PHP curl library