PHP的curl库代码使用
欢迎訪问个人原创地址: http://www.phpthinking.com/archives/468
使用PHP的cURL库能够简单和有效地去抓网页。
你仅仅须要执行一个脚本。然后分析一下你所抓取的网页。然后就能够以程序的方式得到你想要的数据了。
不管是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。本文主要讲述假设使用这个PHP库。
启用 cURL 设置
首先,我们得先要确定我们的PHP是否开启了这个库,你能够通过使用php_info()函数来得到这一信息。
|
<?php phpinfo(); ?> |
假设你能够在网页上看到以下的输出。那么表示cURL库已被开启。
假设你看到的话,那么你须要设置你的PHP并开启这个库。假设你是在Windows平台下,那么很easy。你须要改一改你的php.ini文件的设置,找到php_curl.dll,并取消前面的分号凝视即可了。例如以下所看到的:
|
//取消下在的凝视 extension=php_curl.dll |
假设你是在Linux以下,那么。你须要又一次编译你的PHP了。编辑时,你须要打开编译參数——在configure命令上加上“–with-curl” 參数。
一个小演示样例
假设一切就绪,以下是一个小例程:
|
<?
// 初始化一个 cURL 对象 $curl = // 设置你须要抓取的URL // 设置header curl_setopt( $curl , // 设置cURL 參数,要求结果保存到字符串中还是输出到屏幕上。 curl_setopt( $curl , // 执行cURL,请求网页 $data = $curl ); // 关闭URL请求 curl_close( $curl ); // 显示获得的数据 var_dump( $data ); |
怎样POST数据
上面是抓取网页的代码,以下则是向某个网页POST数据。如果我们有一个处理表单的网址http://www.example.com/sendSMS.php。其能够接受两个表单域,一个是电话号码。一个是短信内容。
|
<?php $phoneNumber = '13912345678' ; $message = 'This ; $curlPost = 'pNUMBER=' . $phoneNumber ) '&MESSAGE=' . $message ) '&SUBMIT=Send' ; $ch = curl_setopt( $ch , curl_setopt( $ch , curl_setopt( $ch , curl_setopt( $ch , $curlPost ); $data = curl_close( $ch ); ?
|
从上面的程序我们能够看到。使用CURLOPT_POST设置HTTP协议的POST方法,而不是GET方法,然后以CURLOPT_POSTFIELDS设置POST的数据。
关于代理server
以下是一个怎样使用代理server的演示样例。 请注意当中高亮的代码。代码非常easy,我就不用多说了。
|
<?php $ch = curl_setopt( $ch , curl_setopt( $ch , curl_setopt( $ch , curl_setopt( $ch , 'fakeproxy.com:1080' ); curl_setopt( $ch , 'user:password' ); $data = curl_close( $ch ); ?
|
关于SSL和Cookie
关于SSL也就是HTTPS协议,你仅仅须要把CURLOPT_URL连接中的http://变成https://就能够了。当然,另一个參数叫CURLOPT_SSL_VERIFYHOST能够设置为验证网站。
关于Cookie,你须要了解以下三个參数:
- CURLOPT_COOKIE,在当面的会话中设置一个cookie
- CURLOPT_COOKIEJAR。当会话结束的时候保存一个Cookie
- CURLOPT_COOKIEFILE,Cookie的文件。
HTTPserver认证
最后。我们来看一看HTTPserver认证的情况。
|
<?
$ch = curl_setopt( $ch , curl_setopt( $ch , curl_setopt(CURLOPT_USERPWD, '[username]:[password]' ) $data = curl_close( $ch ); ?> |
PHP的curl库代码使用的更多相关文章
- linux编译curl库的动态库so(转)
转载请注明出处:帘卷西风的专栏(http://blog.csdn.NET/ljxfblog) curl库是一个很强大的http开源库,c++里面能够很方便的和http服务器交互. 最近项目开始内测,开 ...
- 嵌入式 Linux下curl库API简单介绍
1:CURLcode curl_global_init(long flags); 这个函数全局需要调用一次(多次调用也可以,不过没有必要), 所以这也是把Curlplus设计成单体类的原因,curl_ ...
- php的cURL库介绍
cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.很多小偷程序都是使用这个函数.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的 ...
- 采用curl库
Windows通过使用curl库: 到http://curl.haxx.se/下了个curl的源代码下来,源代码是用VC6编译的,我在VS2005下又一次进行编译.竟然仅仅有一个警告. cUrl的实现 ...
- ZH奶酪:PHP的cURL库
原文链接:http://coolshell.cn/articles/664.html 参考链接:http://www.runoob.com/php/php-ref-curl.html 使用PHP的cU ...
- CURL库在C++程序中的运用浅析
最近由于要做一个爬虫项目,要对很多网站进行爬取,所以一直都在看这方面的文章.在翻阅了很多资料后,下载了一个curl库,着实对项目有了很大的帮助. 一.LibCurl基本编程框架 二.一些基本的函数 三 ...
- 转:CURL库在程序中的运用浅析
CURL库在程序中的运用浅析-nk_ysg-ChinaUnix博客 http://blog.chinaunix.net/uid-22476414-id-3286638.html 这个目录的文章转载fr ...
- CURL库的宏定义列表
列表CURL库一共同拥有17个函数 curl_close:关闭CURL会话 curl_copy_handle:复制一个CURL会话句柄,同一时候3复制其全部參数 curl_errno:返回最后一个错误 ...
- [转]linux 下 使用 c / c++ 调用curl库 做通信开发
example: 1. http://curl.haxx.se/libcurl/c/example.html 2. http://www.libcurl.org/book: 1. http:/ ...
随机推荐
- JavaScript、SSH知识点整理
七.Javascript部分 1:什么是Javascript JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言. 2:Java和Java ...
- iOS-获取Model(设备型号)、Version(设备版本)、app(程序版本)等
IOS-获取Model(设备型号).Version(设备版本).app(程序版本)等 NSLog(@"uniqueIdentifier: %@", [[UIDevice curre ...
- 客户端通过wcf来启动或者停止服务器上的windows service
1.设置服务器上的windows service的security,下面的命令只能用cmd.exe来运行(以管理员模式) sc sdset "LISA_43_Dev_Batch" ...
- hdoj--1272--小希的迷宫(并查集)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 在nodejs使用Redis缓存和查询数据及Session持久化(Express)
在nodejs使用Redis缓存和查询数据及Session持久化(Express) https://segmentfault.com/a/1190000002488971
- 【转】SQL语句删除和添加外键、主键
--删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter ...
- vue中采用axios发送请求及拦截器
这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在 ...
- LIst和map的遍历
1. public static void main(String[] args) { // ArrayList类实现一个可增长的动态数组 List<String> list = new ...
- c++ sort函数的用法
C++ sort函数用法 FROM:http://hi.baidu.com/blackdemonfish/blog/item/e2c1d655d702a45ed0090652%2Ehtml 最近算法作 ...
- 查看网站域名IP地址
运行:CMD 输入: Nslookup 网站地址 示例: Nslookup httpwww.baidu.com 我们是筑梦团队,我们的座右铭是:当提起逐梦的脚步,也请举起筑梦的双手