今天我们就以实例向大家讲解php_curl库的基本用法,加深大家对php_curl库的理解程度,比如我们可以通过设置函数curl_setopt() 的不同参数来实现不同的效果等等一些强大的功能。
简介
#t#你可能在你的编写PHP脚本代码中会遇到这样的问题:怎么样才能从其他站点获取内容呢?这里有几个解决方式;最简单的就是在php中使用fopen()函数,但是fopen函数没有足够的参数来使用,比如当你想构建一个“网络爬虫”,想定义爬虫的客户端描述(IE,firefox),通过不同的请求方式来获取内容,比如POST,GET;等等这些需求是不可能用fopen() 函数实现的。
为了解决我们上面提出的问题,我们可以使用PHP的扩展库-Curl,这个扩展库通常是默认在安装包中的,你可以它来获取其他站点的内容,也可以来干别的。
备注:这两段代码需要php_curl扩展库的支持,查看phpinfo(),如果curl support enabled则表示支持curl库。
1、Windows下的PHP开启curl库支持:
打开php.ini,将extension=php_curl.dll前的;号去掉。2、Linux下的PHP开启curl库支持:
编译PHP时在./configure后加上 –with-curl
在这篇文章中,我们一起来看看如何使用curl库,并看看它的其他用处,但是接下来,我们要从最基本的用法开始
基本用法:
第一步,我们通过函数curl_init()创建一个新的curl会话,代码如下:
- <?php
- // create a new curl resource$ch = curl_init();?>
我们已经成功创建了一个curl会话,如果需要获取一个URL的内容,那么接下的一步,传递一个URL给curl_setopt()函数,代码:
- <?php
- // set URL and other appropriate options
- curl_setopt($ch, CURLOPT_URL, “http://www.google.com/”);
- ?>
做完上一步工作,curl的准备工作做完了,curl将会获取URL站点的内容,并打印出来。代码:
- <?php
- // grab URL and pass it to the browser
- curl_exec($ch);
- ?>
最后,关闭当前的curl会话
- <?php
- //close curl resource, and free up system resources
- curl_close($ch);
- ?>
下面我们来看看完成的实例代码:
- <?php
- // create a new curl resource
- $ch = curl_init();
- // set URL and other appropriate options
- curl_setopt($ch, CURLOPT_URL, “http://www.google.nl/”);
- // grab URL and pass it to the browser
- curl_exec($ch);
- // close curl resource, and free up system resources
- curl_close($ch);
- ?>
我们刚刚把另外一个站点的内容,获取过来以后自动输出到浏览器,我们有没有其他的方式组织获取的信息,然后控制其输出的内容呢?完全没有问题,在curl_setopt()函数的参数中,如果希望获得内容但不输出,使用CURLOPT_RETURNTRANSFER 参数,并设为非0值/true!,完整代码请看:
- <?php
- // create a new curl resource
- $ch = curl_init();
- // set URL and other appropriate options
- curl_setopt($ch, CURLOPT_URL, “http://www.google.nl/”);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- // grab URL, and return output
- $output = curl_exec($ch);
- // close curl resource, and free up system resources
- curl_close($ch);
- // Replace ‘Google’ with ‘PHPit’
- $output = str_replace(’Google’, ‘PHPit’, $output);
- // Print output
- echo $output;
- ?>
在上面的2个php_curl库实例中,你可能注意到通过设置函数curl_setopt() 的不同参数,可以获得不同结果,这正是curl强大的原因。