解决IIS运行PHP出现Call to undefined function curl_init()的问题
作者:admin 时间:2012-7-3 17:27:52 浏览:今天想通过php的curl_init()函数获得网页header信息,但是一开始就遇到许多不顺,其中最大的问题是curl_init()函数执行报错,不过经过一般摸索,总算找到了解决问题的方法。
如下面非常简单的程序代码
<?php
$ch = curl_init();
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://www.webkaka.com/");
curl_setopt($ch, CURLOPT_HEADER, true);
// 抓取URL并把它传递给浏览器
curl_exec($ch);
//关闭cURL资源,并且释放系统资源
curl_close($ch);
?>
通过该程序代码,可以打开目标网页并显示其header信息。
此程序代码看似简单,但是一般配置的php环境还不一定能执行成功。有的php环境配置里禁用了curl_exe()函数,导致不能执行;而如果php环境配置没有允许curl_init()函数,也同样不能执行。我今天遇到的问题就是没有配置好curl_init()的执行条件,导致出现如下错误提示:Call to undefined function curl_init,通过一番摸索,解决方法如下:
1、修改php.ini文件。
这个文件在你的php安装目录里,如c:\php\。如果没有发现该文件,就把php.ini-dist这个文件的扩展名改为.ini即可。
用记事本打开该文件,在文件中搜索 extension_dir = “./”,将等号后面的路径修改为 “c:\php\ext”(注:“c:\php\”是php安装目录)。
搜索“;extension=php_gd2.dll”、“;extension=php_mysql.dll”,去掉前面的分号。
搜索“;extension=php_curl.dll”,去掉前面的分号。(这个设置是允许你的php环境执行php_curl()函数)
保存php.ini,将它拷贝至windows文件夹下。
2、在刚才设置的extension_dir目录下检查有无php_curl.dll,没有的请在网上下载一个php_curl.dll。
3、把php目录中的libeay32.dll和ssleay32.dll拷到c:\windows\system32里面。
4、最后要重启IIS。IIS重启方法:在dos里输入 iisreset /restart 即可。
这样,问题就可以解决了。
curl_exec()禁用了如何解决?
同样需要修改php.ini文件,查找disable_functions,把curl_exec()去掉即可。
手动配置php环境我现在觉得过于麻烦了,我现在都是用星外PHP全自动安装30秒搞定,强烈推荐使用哦。
- 站长推荐