如何防止 system() 函数在浏览器中打印输出?

发布于 2024-12-21 12:50:06 字数 184 浏览 0 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

寂寞笑我太脆弱 2024-12-28 12:50:06

您为此使用了错误的函数。根据文档:

system() 就像该函数的 C 版本一样,它执行给定的命令并输出结果。

所以它总是输出。使用 exec文档相反,它返回(而不是输出)程序输出:

$last =  exec("curl command here", $output, $status);
$output = implode("\n", $output);

或者(只是为了完整性)使用 输出缓冲文档

ob_start();
system("curl command here", $status);
$output = ob_get_clean();

You're using the wrong function for that. According to the docs:

system() is just like the C version of the function in that it executes the given command and outputs the result.

So it always outputs. Use exec­Docs instead which does return (and not output) the programs output:

$last =  exec("curl command here", $output, $status);
$output = implode("\n", $output);

Or (just for completeness) use output buffering­Docs:

ob_start();
system("curl command here", $status);
$output = ob_get_clean();
冷弦 2024-12-28 12:50:06

您可以尝试使用输出缓冲。

ob_start();
system("curl command here",$output);
$result = ob_get_contents();
ob_end_clean();

You coud try using output buffering.

ob_start();
system("curl command here",$output);
$result = ob_get_contents();
ob_end_clean();
三生池水覆流年 2024-12-28 12:50:06

您可以修改命令字符串并附加“ 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().

各自安好 2024-12-28 12:50:06

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.

温暖的光 2024-12-28 12:50:06

不,你应该使用 PHP curl 库

No, you should use PHP curl library

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文