编 写:袁 亮
时 间:2015-07-09
说 明:curl的初阶使用
一、curl是干什么的?
当我们需要在程序中,抓取其他网页或者图片等远程数据的时候,可以使用curl完成一些比较强大的功能
ps:如果要求不高,只是简单的抓取,可以使用file_get_contents来抓取
二、开启扩展
ps:确定是否有该扩展,很简单,写个php文件,里面价格curl_init();运行是否报错,如果报错则需要开启扩展
1、windows下开启,以appserv为例
1.1 将以下三个文件复制到C:\Windows\system32\下
AppServ\php5\ext\php_curl.dll
AppServ\php5\libeay32.dll
AppServ\php5\ssleay32.dll
1.2 找到C:\Windows\php.ini文件(phpinfo函数输出的内容中,有php.ini文件的位置)
extension=php_curl.dll
将这行前面的;号注释去掉
1.3 重启apache,appserv中有apache restart的功能
2、linux
虚拟机上的话重新编译php的curl模块
线上服务器,直接找运维同学帮忙安装即可
三、简单使用
1、简单函数
function curl($url){//curl模拟浏览器方式数据
$urlinfo = parse_url($url);
$host = $urlinfo["scheme"].'://'.$urlinfo['host'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,作为变量返回
curl_setopt($ch, CURLOPT_REFERER, $host);//模拟referer,防止被禁止,抓取图片的时候非常有用
curl_setopt($ch, CURLOPT_TIMEOUT,3);//内容传输的最长时间,一定要设置
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,3);//连接的最长时间,一定要设置
$img = curl_exec($ch);
return $img;
}
2、使用
$html = curl('网页、图片等地址');