当前位置: 首页 > 知识库问答 >
问题:

如何防止这个脚本与任何东西相呼应?

姬朗
2023-03-14

脚本一次执行多个URL,并自动回声URL的内容,我想防止这个脚本回声任何东西,但我没有看到任何行像回声'某物';除了我注释掉的行。

以下是脚本:


    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);
        }

帮助:)

共有2个答案

吴城
2023-03-14

当您创建单独的cURL句柄时,将选项CURLOPT_RETURNTRANSFER设置为1,cURL在发出请求时不会将内容输出到stdout。

请求完成后,如果您想访问单个句柄的响应主体,请调用该句柄上的curl_multi_getcontent(),它将返回响应的内容。

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

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

谭繁
2023-03-14

使用ob_start()打开输出缓冲区将在打印到屏幕之前捕获所有输出。

然后使用ob_end_clean()ob_end_flush()关闭缓冲区。Flush将在关闭缓冲区之前打印缓冲区的内容。

请在此处查看有关输出控制的更多信息。

 类似资料:
  • 问题内容: 目前,我试图阻止脚本多次运行: 并且有一个cron作业每分钟执行一次以上脚本: 它可以工作一段时间。几天后,当我这样做时: 我发现有 两个 实例正在运行!不是三个或更多,不是一个。我杀死了其中一个实例。几天后,又有 两个 实例。 代码有什么问题?还有其他替代方法来限制onlytask.php的一个实例正在运行吗? PS我的文件夹没有清理。显示锁定文件是在第一天创建的: 问题答案: 现在

  • 我是不是漏了什么? 这不能编译。Eclipse抱怨"Matcher Asrett类型中的方法断言(T, Matcher)不适用于参数(int, Matcher 我错过了什么东西可以用吗?我在过去使用过其他Hamcrest方法...那么这有什么不同呢?

  • 问题内容: 我在将任何内核模块构建到我的机器上时遇到问题。每当我构建模块时,modpost总是说模块为零: 为了解决该问题,我编写了一个测试模块(hello.c): 这是模块的Makefile: 在计算机上构建它时,得到以下输出: 当我在另一台机器上制作模块时,它成功了: 我寻找了有关modpost的任何相关文档,但收效甚微。任何人都知道modpost如何决定要构建什么?我可能会缺少一个环境吗?

  • 问题内容: 我有以下代码: 该文件包含以下内容: 但是由于某种原因,每次都只返回一个空列表。 代码中可能存在愚蠢的错误或错字,但我只是找不到。提前致谢。 问题答案: 你读的文件 已经 和文件指针不是在 末尾 的文件。然后调用将不会返回数据。 仅读取一次文件: 另一种选择是在重新阅读之前先回到开头: 但这只是浪费CPU和I / O时间。 最好的办法是尝试和阅读 小 数据量,或寻求到了最后,通过采取文

  • 问题内容: 在我以前的Meteor应用程序中,使用browserify和React,所有功能都可以使用,直到我切换到meteor webpack为止 。 我在Meteor应用程序中使用react-select,效果很好,但是使用browserify可以防止加载多个react副本,从而避免出现此错误: 我的package.json看起来像这样: Webpack中是否有配置,我可以使用外部调用?尚不完