Php 如何防止此脚本回显任何内容?

Php 如何防止此脚本回显任何内容?,php,curl,Php,Curl,脚本一次执行多个URL,并自动回显URL的内容,我想阻止此脚本回显任何内容,但我没有看到任何类似echo'something'的行除了我注释掉的行 以下是脚本: function batch_execute($urls) { $i = 0; $block = array(); $curl_handles = array(); foreach ($u

脚本一次执行多个URL,并自动回显URL的内容,我想阻止此脚本回显任何内容,但我没有看到任何类似
echo'something'的行除了我注释掉的行

以下是脚本:

function batch_execute($urls) { $i = 0; $block = array(); $curl_handles = array(); foreach ($urls as $url) { $curl_handles[$url] = curl_init(); curl_setopt($curl_handles[$url], CURLOPT_URL, $url); curl_setopt($curl_handles[$url], CURLOPT_CONNECTTIMEOUT, 100); } $curl_multi_handle = curl_multi_init(); foreach ($curl_handles as $a_curl_handle) { $i++; curl_multi_add_handle($curl_multi_handle, $a_curl_handle); $block[] = $a_curl_handle; if (($i % 10 == 0) or ($i == count($curl_handles))) { $running = NULL; do { $running_before = $running; curl_multi_exec($curl_multi_handle, $running); if ($running != $running_before) { // echo("Waiting for $running sites to finish...\n"); } } while ($running > 0); foreach ($block as $handle) { // $code = curl_getinfo($handle, CURLINFO_HTTP_CODE); // $curl_errno = curl_errno($handle); $curl_error = curl_error($handle); if ($curl_error) { // echo(" *** cURL error: ($curl_errno) $curl_error\n"); } curl_multi_remove_handle($curl_multi_handle, $handle); } $block = array(); } } curl_multi_close($curl_multi_handle); } 函数批处理执行($URL) { $i=0; $block=array(); $curl_handles=array(); foreach($url作为$url) { $curl_handles[$url]=curl_init(); curl_setopt($curl_句柄[$url],CURLOPT_url,$url); curl_setopt($curl_handles[$url],CURLOPT_CONNECTTIMEOUT,100); } $curl_multi_handle=curl_multi_init(); foreach($a\u curl\u handles作为$a\u curl\u handle) { $i++; curl\u multi\u add\u handle($curl\u multi\u handle,$a\u curl\u handle); $block[]=$a\u curl\u句柄; 如果($i%10==0)或($i==count($curl\u handles))) { $running=NULL; 做 { $running_before=$running; curl\u multi\u exec($curl\u multi\u handle,$running); 如果($running!=$running\u之前) { //echo(“等待$running sites完成…\n”); } }而($running>0); foreach($block作为$handle) { //$code=curl\u getinfo($handle,CURLINFO\u HTTP\u code); //$curl\u errno=curl\u errno($handle); $curl\u error=curl\u error($handle); 如果($curl\u错误) { //echo(“***卷曲错误:($cURL\u errno)$cURL\u error\n”); } curl\u multi\u remove\u handle($curl\u multi\u handle,$handle); } $block=array(); } } curl\u multi\u close($curl\u multi\u handle); }
帮助:)

使用
ob\u start()
打开输出缓冲区将在打印到屏幕之前捕获所有输出

然后用
ob\u end\u clean()
ob\u end\u flush()
关闭缓冲区。Flush将在关闭缓冲区之前打印缓冲区的内容


查看有关输出控件的更多信息。

创建单个cURL句柄时,将选项
CURLOPT\u RETURNTRANSFER
设置为
1
,cURL在发出请求时不会将内容输出到stdout

请求完成后,如果要访问单个句柄的响应体,请调用该句柄,它将返回响应的内容

您可以使用
CURLOPT\u NOBODY
,但其副作用是请求被更改为
HEAD
请求,许多服务器可能不接受该请求


使用输出缓冲也是一种可能,但如果需要将响应正文与单个请求隔离开来,则没有帮助。

尝试打开输出缓冲(
ob\u start()
)。我相信您需要将
CURLOPT_NOBODY
设置为
true
。嘿@Matt非常感谢:)请记住,完成后关闭输出缓冲区(并清理它)是有效的<代码>ob\u end\u clean()
不刷新。。。清洁的哈哈,flush将输出到浏览器。使用
ob\u end\u clean()