$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, gzip);
curl_close($ch);curl抓取网站,某些网站用gzip压缩,需要设置CURLOPT_ENCODING才能正常显示,否则乱码。
请问:设置CURLOPT_ENCODING,会不会影响非gzip压缩的网站?(一个CLASS,是通用代码。)
另外,除了CURLOPT_RETURNTRANSFER,和CURLOPT_ENCODING,还有哪些curl_setopt设置使通常curl抓取网站需要注意使用的?谢谢。

解决方案 »

  1.   

    多了,你去curl官网下个文档,就知道有几十个参数呢,当然不是一次全部用上的压缩不影响的,是检测到双方都有这个参数才会自动调用的
      

  2.   

    curl_setopt 用于设置 curl 的工作参数
    无论你是否设置,这些参数都是存在的。都将在运行时影响 curl 的行为
    只不过你没设置,他就是用默认值而已在默认情况下,只需 CURLOPT_URL 就可以了如果你不想让 curl_exec 直接输出结果,而是返回给变量。那么就要设置 CURLOPT_RETURNTRANSFER,当然这是要消耗内存的
    你需要自动解压 gzip 就得设置 CURLOPT_ENCODING,虽然对于非 gzip 他也要判断一下这就是说,你要达到预期的目的,就要花费一定的代价
      

  3.   

    原来如此。
    CURLOPT_RETURNTRANSFER不设置,基本不返回数据。
    谢谢。