php_curl库的基本应用讲解

开发 后端
php_curl库的功能异常强大,我们可以通过函数curl_setopt()参数的不同设置在不同的应用实例中实现不同的效果,为我们解决问题。

今天我们就以实例向大家讲解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会话,代码如下:

  1. <?php 
  2. // create a new curl resource$ch = curl_init();?> 

我们已经成功创建了一个curl会话,如果需要获取一个URL的内容,那么接下的一步,传递一个URL给curl_setopt()函数,代码:

  1. <?php 
  2. // set URL and other appropriate options  
  3. curl_setopt($ch, CURLOPT_URL, “http://www.google.com/”);  
  4. ?> 

做完上一步工作,curl的准备工作做完了,curl将会获取URL站点的内容,并打印出来。代码:

  1. <?php 
  2. // grab URL and pass it to the browser  
  3. curl_exec($ch);  
  4. ?> 

最后,关闭当前的curl会话

  1. <?php 
  2. //close curl resource, and free up system resources  
  3. curl_close($ch);  
  4. ?> 

下面我们来看看完成的实例代码:

  1. <?php 
  2. // create a new curl resource  
  3. $ch = curl_init();  
  4. // set URL and other appropriate options  
  5. curl_setopt($ch, CURLOPT_URL, “http://www.google.nl/”);  
  6. // grab URL and pass it to the browser  
  7. curl_exec($ch);  
  8. // close curl resource, and free up system resources  
  9. curl_close($ch);  
  10. ?> 

我们刚刚把另外一个站点的内容,获取过来以后自动输出到浏览器,我们有没有其他的方式组织获取的信息,然后控制其输出的内容呢?完全没有问题,在curl_setopt()函数的参数中,如果希望获得内容但不输出,使用CURLOPT_RETURNTRANSFER 参数,并设为非0值/true!,完整代码请看:

  1. <?php 
  2. // create a new curl resource  
  3. $ch = curl_init();  
  4. // set URL and other appropriate options  
  5. curl_setopt($ch, CURLOPT_URL, “http://www.google.nl/”);  
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
  7. // grab URL, and return output  
  8. $output = curl_exec($ch);  
  9. // close curl resource, and free up system resources  
  10. curl_close($ch);  
  11. // Replace ‘Google’ with ‘PHPit’  
  12. $output = str_replace(’Google’, ‘PHPit’, $output);  
  13. // Print output  
  14. echo $output;  
  15. ?> 

在上面的2个php_curl库实例中,你可能注意到通过设置函数curl_setopt() 的不同参数,可以获得不同结果,这正是curl强大的原因。

文章来源:http://cai555.javaeye.com/blog/343918

责任编辑:曹凯 来源: javaeye博客
相关推荐

2010-02-26 13:40:28

WCF消息头

2010-03-04 14:57:08

Python解密VBS

2010-01-25 13:45:04

Android单选框

2013-12-12 16:10:21

Lua脚本语言

2010-07-08 15:24:17

SNMP trap

2009-11-23 11:25:54

php curl

2010-06-23 15:28:22

2010-02-25 10:52:29

WCF响应服务

2010-03-03 16:40:55

Python HTTP

2010-02-02 14:45:35

C++ typeof

2010-03-04 09:27:34

调用Python脚本

2010-03-03 14:40:37

Python打包方法

2010-03-03 10:03:55

Python连接Sql

2010-03-01 15:40:04

WCF实例停用

2010-03-03 14:30:05

Python set类

2010-03-01 11:24:31

WCF面向服务

2010-02-23 15:58:57

WCF Session

2010-02-25 18:04:02

WCF IIS宿主

2010-03-01 09:48:23

WCF会话服务

2010-03-01 16:04:31

WCF服务契约
点赞
收藏

51CTO技术栈公众号