为了测试一个模拟登陆163邮箱的例子,在这个过程中遇到了一个大问题:未定义的curl_init函数。然后上网各种找,关于解决方法是一大堆,我也一一尝试,结果还是未能解决我的问题。知道看到一个连接一片博客《PHP菜鸟手记——如何解决无法装载动态链接库的问题》(http://www.cnblogs.com/perhaps/archive/2010/11/15/1877653.htm)才彻底解决了我的问题。所以我想记录下。
关于未定义的curl_init函数是由于未能加载php_curl模块造成的。一般的解决方法是:
(1)找到php安装目录下的php.ini配置文件,去掉extension=php_curl前面的;(注释符号)号,并找到extension_dir去掉前面的注释符号,把ext(在php安装目录下这个文件夹)的路径赋值给extension_dir。
(2)由于php_curl.dll(在前面的ext文件夹下)的运行依赖与libeay32.dll和ssleay32.dll库(在php安装目录下),所以需要在Apache的配置文件httpd.conf中加载这两个库:
LoadFile "D:/PHP/PHP/libeay32.dll" LoadFile "D:/PHP/PHP/ssleay32.dll"
(3)在环境变量中加入php的安装目录。
完成以上三步,如果还有问题。那么就是接下来要讲的:
在网上大多给出的说法是php_curl库依赖于libeay32.dll和ssleay32.dll库,其实你要是使用查看库依赖的工具的话,会发现它还依赖于zlib.dll库。所以在你完成以上三步之后问题还是存在的原因就是在这里。接下来就是去下个zlib.dll库=》http://www.zlib.net/,当然下载之后的名字要改为zlib.dll,然后放到你的php安装目录下。