在CLI中静默PHP cURL输出

ult*_*ate 1 php curl codeigniter command-line-interface

我正在使用一个scrapper(在PHP中)并使用cURL来获取页面.该脚本可以在CLI和浏览器中运行.这是我第一次在CLI上使用PHP,我试图使屏幕漂亮,并且有一个很好的数据表示,如scrape统计信息显示.

我能够以我想要的方式生成输出,差不多.但是对于服务器发出的每个cURL请求,它还会输出这个额外的头信息,如下所示:

* About to connect() to imbd.com port 80 (#0)
*   Trying 123.111.222.333... * connected
> GET /categories/something.html HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20130401 Firefox/21.0
Host: imdb.com
Accept: */*

< HTTP/1.1 200 OK
< Server: nginx/1.4.1
< Date: Wed, 25 Dec 2013 02:17:06 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< X-Powered-By: PHP/5.3.17
< Set-Cookie: mobileType=0%something; expires=Wed, 01-Jan-2014 02:17:06 GMT; path=/; domain=.imdb.com
< 
* Connection #0 to host imdb.com left intact
* Closing connection #0
...
Statistics
...
Run Code Online (Sandbox Code Playgroud)

使用cURL的函数

    public function getHTML($url) 
    {
        $user_agent = "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.9.1.6) ...";

        $options = Array(
            CURLOPT_RETURNTRANSFER => TRUE,  
            CURLOPT_FOLLOWLOCATION => TRUE,  
            CURLOPT_AUTOREFERER => TRUE,
            CURLOPT_CONNECTTIMEOUT => 120,
            CURLOPT_TIMEOUT => 120,
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_USERAGENT => $user_agent,
            CURLOPT_URL => $url,
        CURLOPT_VERBOSE => true,
        CURLOPT_SSL_VERIFYPEER => false,
        );
        $ch = curl_init();
        curl_setopt_array($ch, $options);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }
Run Code Online (Sandbox Code Playgroud)

现在,我想要做的就是在CLI中隐藏此信息,就像在浏览器中一样.如果它是cli curl,我会用-s它来关闭它.但我无法为此找到PHP替代方案.另外,CURLOPT_MUTE是折旧的.所有谷歌给我的是设置CURLOPT_RETURNTRANSFER真实,我已经拥有.

此外,我想知道如何避免设置任何cookie以避免跟踪.

如果它以任何方式帮助我使用

  • 操作系统:Ubuntu
  • 软件:PHP5.5
  • 框架:CodeIgniter 3.0-dev
  • 扩展名:cURL
  • 接口:命令行(终端)

cha*_*118 6

删除它.

CURLOPT_VERBOSE => true,
Run Code Online (Sandbox Code Playgroud)

根据php手册

Set value to

为TRUE输出详细信息.将输出写入STDERR,或使用CURLOPT_STDERR指定的文件.