让Snoopy也支持HTTPS的解决办法

How to make Snoopy work with https, we will find out!
Class Name:Snoopy.class.php
Snoopy version:1.2.4

如何让Snoopy这个PHP支持HTTPS,即SSL安全协议,我们今天就来解决这个问题。

First of all, look at the comment of $curl_path in Snoopy.class.php.

Snoopy will use cURL for fetching SSL content if a full system path to the cURL binary is supplied here.
set to false if you do not have cURL installed.
See http://curl.haxx.se for details on installing cURL.
Snoopy does *not* use the cURL library functions built into php,as these functions are not stable as of this Snoopy release.

首先,看一下 Snoopy.class.php 中的注释。

如果系统支持cURL binary的话,Snoopy 将使用cURL来获取SSL内容.
如果没有安装cURL扩展,那这里的$curl_path默认就是false.
如何安装cURL请参见:http://curl.haxx.se .
虽然PHP5版本中已经内置了cURL函数,但Snoopy的作者认为,本版Snoopy发布时,这些cURL库的性能还不是很稳定。

如此说来,Snoopy的移情别恋是因为有更好的扩展库推荐。这个cURL库就是:http://curl.haxx.se。
访问这个站点,我看到当前的cURL版本已经更新到 2010年2月的 7.20.0,我顺道去看了一下PHP5.2.11 ext目录下的cURL.dll,可惜看不到版本号。

我使用的开发环境是Wamp,本以为在Windows环境下无法使用cURL功能,但很高兴,我在下载页面:http://curl.haxx.se/download.html 找到了Win32版本。而且,版本还比较丰富,包括Generic、MSVC和64位的版本。
默认支持2003/XP,so,尚不清楚在Win7下是否支持。有测试过的朋友可以反馈一下。

按照说明,下载openSSL和zlib并安装,Linux下基本已经默认自带了,各位可以可以检查一下,没有的可以按照说明编译,并重新配置一下PHP。

最后,重新在Snoopy.class.php中,指定cURL路径,设置端口为443,问题解决。