- 浏览: 308191 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (148)
- wicket (3)
- 算法,数据结构 (1)
- 其他 (1)
- jdbc (2)
- mysql (10)
- php (18)
- gwt中文文档 (0)
- jquery (2)
- smil教程 (2)
- 开源知识 (1)
- mms彩信 (2)
- java (12)
- centos (3)
- linux (2)
- php apc (1)
- java hibernate (4)
- xampp (1)
- tomcat (1)
- css调试 (3)
- jasperReport (3)
- js 效果 (3)
- apache (1)
- eclipse (6)
- ss7 (8)
- java log log4j (2)
- java jndi (1)
- ldap (2)
- activemq (3)
- spring security (4)
- java 注解 (0)
- thinking in java (3)
- hibernate (1)
- maven (1)
- wap push (2)
- memcached (7)
- java servlet (2)
- flash game (0)
- financial knowledge (6)
- protect eyes (1)
最新评论
-
u012359453:
我是Android开发的,最近需要做一个消息转发的后台,我写好 ...
使用Java Service Wrapper将java程序作为linux服务并且开机自动启动 -
zhcheng:
我就是按照你这个配置的,别的地方都没有问题,只有在使用标签的时 ...
spring security3.0的ACL使用例子 -
xjjaid13:
...
js实现图片左右滚动 -
bhdweb:
项目中的角色名是死的?直接用户注解写在方法上?
spring security3.0的ACL使用例子 -
hw1287789687:
根本原因:我实体类中的类型是raw,没法直接实例化的类型。pr ...
hibernate错误:Could not determine type for: java.util.Set
原文地址:http://www.cmx8.cn/curl.html
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网
页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内
容,cURL 是一个功能强大的PHP库。 PHP中的CURL函数库(Client URL Library Function) curl_close — 关闭一个curl会话 curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。 例子一: 基本例子
curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数
curl_errno — 返回一个包含当前会话错误信息的数字编号
curl_error — 返回一个包含当前会话错误信息的字符串
curl_exec — 执行一个curl会话
curl_getinfo — 获取一个curl连接资源句柄的信息
curl_init — 初始化一个curl会话
curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源
curl_multi_close — 关闭一个批处理句柄资源
curl_multi_exec — 解析一个curl批处理句柄
curl_multi_getcontent — 返回获取的输出的文本流
curl_multi_info_read — 获取当前解析的curl的相关传输信息
curl_multi_init — 初始化一个curl批处理句柄资源
curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以数组的形式为一个curl设置会话参数
curl_setopt — 为一个curl设置会话参数
curl_version — 获取curl相关的版本信息
curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。
// 初始化一个 cURL 对象 $curl = curl_init(); // 设置你需要抓取的URL curl_setopt($curl, CURLOPT_URL, 'http://www.gvfish.com'); // 设置header curl_setopt($curl, CURLOPT_HEADER, 1); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 运行cURL,请求网页 $data = curl_exec($curl); // 关闭URL请求 curl_close($curl); // 显示获得的数据 var_dump($data);
例子二: POST数据 sendSMS.php,其可以接受两个表单域,一个是电话号码,一个是短信内容。
$phoneNumber = '13812345678'; $message = 'This message was generated by curl and php'; $curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.gvfish.com/sendSMS.php'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec(); curl_close($ch);
例子三:使用代理服务器
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.gvfish.com'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXY, 'proxy.lxvoip.com:1080'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); $data = curl_exec(); curl_close($ch);
例子四: 模拟登录 Curl 模拟登录 discuz 程序,适合DZ7.0,将username改成你的用户名,userpass改成你的密码就可以了.
/** * Curl 模拟登录 discuz 程序 * 尚未实现开启验证码的的论坛登录功能 */ !extension_loaded('curl') && die('The curl extension is not loaded.'); $discuz_url = 'http://www.gvfish.com';//论坛地址 $login_url = $discuz_url .'/logging.php?action=login';//登录页地址 $get_url = $discuz_url .'/my.php?item=threads'; //我的帖子 $post_fields = array(); //以下两项不需要修改 $post_fields['loginfield'] = 'username'; $post_fields['loginsubmit'] = 'true'; //用户名和密码,必须填写 $post_fields['username'] = 'lxvoip'; $post_fields['password'] = '88888888'; //安全提问 $post_fields['questionid'] = 0; $post_fields['answer'] = ''; //@todo验证码 $post_fields['seccodeverify'] = ''; //获取表单FORMHASH $ch = curl_init($login_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $contents = curl_exec($ch); curl_close($ch); preg_match('/<input\s*type="hidden"\s*name="formhash"\s*value="(.*?)"\s*\/>/i', $contents, $matches); if(!empty($matches)) { $formhash = $matches[1]; } else { die('Not found the forumhash.'); } //POST数据,获取COOKIE $cookie_file = dirname(__FILE__) . '/cookie.txt'; //$cookie_file = tempnam('/tmp'); $ch = curl_init($login_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); curl_exec($ch); curl_close($ch); //带着上面得到的COOKIE获取需要登录后才能查看的页面内容 $ch = curl_init($get_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); $contents = curl_exec($ch); curl_close($ch); var_dump($contents);
发表评论
-
php5.3.0以下使用fileinfo获得文件的mime类型
2010-10-22 16:59 1369php5.3.0以下要获得文件的mime类型,一般的方 ... -
php中preg_match和preg_match_all的区别
2010-05-25 17:52 6793preg_match和preg_match_all的区别为: ... -
PHP preg_replace的使用
2010-05-25 17:36 2458preg_replace -- 执行正则表达式的搜索和替换 ... -
php中从html中提取图片路径,并且替换的方法
2010-05-25 17:06 5788思路是这样: 先用正则表达式获取IMG标签,然后把每个IMG ... -
[转]Strcmp以区分大小写的方式比较两个字符串
2010-04-12 18:41 2364以区分大小写的方式比较两个字符串 Strcmp()函数对两个 ... -
[转]使用APC加速PHP:APC配置
2010-03-09 15:51 1581Alternative PHP Cache(APC) ... -
php中数组和对象相互转换
2009-11-06 16:23 52201、强制转换对象为数组 $arr = (array)$obj ... -
如何去掉数组里的某个元素
2009-11-05 10:05 1532例子如下所示: $array=array(a,b,c,d); ... -
PHP中英文混排串的字节数(即占位符)的计算
2009-10-29 10:18 2257首先 比较strlen和mb_strlen $s ... -
PHP调用Webservice实例
2009-10-29 09:18 2817方法一:直接调用 /****************** ... -
NuSoap调用WebService出现乱码的解决办法
2009-10-29 09:17 4069NuSoap是PHP环境下的WebService编程工具,用于 ... -
PHP接口示例程序
2009-10-26 15:59 2475原文地址:http://shadowzsc.spaces.li ... -
php读取二进制文件流生成图片
2009-10-24 14:12 6019$imgString为二进制文件流 $fil ... -
PHP 5的抽象类和接口语法
2009-10-23 17:07 1150abstract class AbstractClass { ... -
在PHP中使用Curl
2009-10-22 15:00 1404原文地址:http://hi.baid ... -
PHP 序列化(serialize)格式详解
2009-09-25 17:12 2344来源:http://www.coolcode.cn/?p=17 ... -
PHP5中的this,self和parent关键字详解
2009-09-18 15:15 1340上面三个关键字: this,sel ...
相关推荐
这个例子中,通过比较使用`curl_multi`和`file_get_contents`获取相同数量的网页所需的时间,可以明显看出使用CURL_MULTI的性能优势。对于需要处理大量HTTP请求的场景,使用多线程采集可以显著提升程序的运行速度。 ...
首先,我们来看几个重要的cURL函数: 1. `curl_init()`:这是开始cURL会话的起点,可选参数是一个URL,用于设置初始请求的目标地址。 2. `curl_setopt()`:此函数用于设置cURL会话的各种选项,如请求类型(GET、...
这通常涉及到几个步骤: 1. **修改`php.ini`文件**: - 找到`php.ini`文件,可以通过运行`phpinfo()`来查找其位置。 - 在文件中找到`;extension=php_curl.dll`这一行,并去掉前面的分号(即取消注释)。 2. **...
在PHP中使用cURL,通常分为以下几个步骤: 1. `curl_init()`: 初始化cURL会话。这将返回一个cURL句柄,用于后续的配置和操作。 2. `curl_setopt()`: 配置cURL选项。你可以设置请求类型(GET、POST等)、URL、返回...
总结一下,使用PHP实现的curl批量请求操作主要包括以下几个步骤: 1. 初始化多接口句柄`curl_multi_init()` 2. 对每个URL创建单独的cURL句柄并设置选项,添加到多接口句柄中`curl_setopt()`和`curl_multi_add_handle...
在这个示例中,我们设置了几个cURL选项: - `CURLOPT_URL`:设置要请求的URL。 - `CURLOPT_RETURNTRANSFER`:使cURL返回结果而不是直接打印。 - `CURLOPT_CONNECTTIMEOUT` 和 `CURLOPT_TIMEOUT`:分别设置连接超时和...
在这个例子中,我们使用`curl_init()`初始化cURL会话,`curl_setopt()`设置各种选项,如URL、是否为POST请求、POST数据以及返回结果而不是直接输出。`http_build_query()`用于将关联数组转换为URL编码的字符串,这是...
在这个例子中,目的是发送一条包含天气信息的自定义消息给特定用户。首先,函数调用了`getAccessToken()`获取到access_token,然后构造了一个POST请求的URL,包含了access_token。接下来,定义了消息的结构,包括...
首先,您需要了解cURL的几个关键函数: 1. curl_init():初始化一个新的cURL会话。 2. curl_setopt():设置cURL传输的各种选项,可以多次调用来设置多个选项。 3. curl_exec():执行一个cURL会话。 4. curl_getinfo...
PHP通过curl获取接口URL的数据方法的知识点包括以下几个方面: 1. cURL库的概念和作用 cURL是一个用于传输数据的客户端库,支持多种协议,包括HTTP、HTTPS、FTP等。PHP中的cURL库允许开发者执行URL请求,比如GET和...
CURL操作步骤通常包括以下几个部分: 1. 初始化CURL会话:使用`curl_init()`函数创建一个新的CURL会话。例如,要抓取百度首页,可以这样初始化: ```php $curl = curl_init('//www.jb51.net'); ``` 2. 配置CURL...
本示例中提到的`testgetcontent.php`文件很可能就是一个使用PHP进行HTTP请求的例子。 1. **file_get_contents函数**: PHP的`file_get_contents`函数可以直接读取URL的内容,简单易用。例如: ```php $url = '...
在实际应用中,调用API通常需要考虑以下几个方面: 1. **错误处理**:确保在调用API时捕获可能出现的错误,如网络问题、无效响应等。 2. **安全性**:在传递敏感数据时,使用HTTPS进行加密传输,避免数据泄露。 3. ...
在CentOS 5.5操作系统中,安装Nginx、PHP和MySQL的组合是一个常见的任务,这个过程可以分为几个关键步骤。以下是一个详细的指南,涵盖了从安装基础环境到配置服务的整个过程。 首先,我们需要确保系统中安装了必要...
在实际的代码实现中,可能会包含以下几个关键部分: 1. **用户界面**:通常是一个简单的HTML表单,用户输入要查询的URL,然后提交请求。 2. **PHP脚本**:接收到表单数据后,PHP脚本会处理URL,进行合法性检查,...
总的来说,通过PHP调用天气网API获取天气信息涉及以下几个步骤: 1. 注册并获取API密钥。 2. 使用PHP发送HTTP请求到API。 3. 解析返回的JSON数据。 4. 提取并显示所需天气信息。 5. 可选地,处理与天气相关的图片。 ...
PHP的核心知识点包括但不限于以下几点: 1. **语法基础**:变量、数据类型、运算符、控制结构(条件语句、循环语句)、函数、数组等。 2. **字符串与正则表达式**:PHP提供了丰富的字符串处理函数和正则表达式支持...
在这个函数类中,可能会包含以下几个关键部分: 1. **构造函数**:类的初始化方法,可能用于设置类的属性,如目标URL、保存路径等。 2. **网络请求方法**:用于发送HTTP请求,获取网页内容。可能使用了`file_get_...
在深入研究net2ftp源码时,开发者会关注以下几个关键点: - **FTP协议实现**:如何使用PHP的fsockopen或cURL库来建立FTP连接,执行各种FTP命令。 - **安全性**:如何处理用户输入以防止SQL注入、跨站脚本攻击等。 -...