Submitted by 孤魂 on 2010, January 14, 7:16 PM
PHP代码
- <?php
- function vcurl($url, $post = '', $cookie = '', $cookiejar = '', $referer = ''){
- $tmpInfo = '';
- $cookiepath = getcwd().'./'.$cookiejar;
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
- if($referer) {
- curl_setopt($curl, CURLOPT_REFERER, $referer);
- } else {
- curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
- }
- if($post) {
- curl_setopt($curl, CURLOPT_POST, 1);
- curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
- }
- if($cookie) {
- curl_setopt($curl, CURLOPT_COOKIE, $cookie);
- }
- if($cookiejar) {
- curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiepath);
- curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiepath);
- }
-
- curl_setopt($curl, CURLOPT_TIMEOUT, 100);
- curl_setopt($curl, CURLOPT_HEADER, 0);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- $tmpInfo = curl_exec($curl);
- if (curl_errno($curl)) {
- echo '<pre><b>错误:</b><br />'.curl_error($curl);
- }
- curl_close($curl);
- return $tmpInfo;
- }
- ?>
新版函数,更加简洁了,HOHO!
Tags: php, curl
学习┊取长补短 | 评论:6
| 阅读:3777
Submitted by 孤魂 on 2009, August 7, 10:50 AM
PHP代码
- <?php
- $cookie_file = dirname(__FILE__)."/cookie_".md5(basename(__FILE__)).".txt";
-
- function vlogin($url,$data){
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
- curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
- curl_setopt($curl, CURLOPT_POST, 1);
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
- curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']);
- curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']);
- curl_setopt($curl, CURLOPT_TIMEOUT, 30);
- curl_setopt($curl, CURLOPT_HEADER, 0);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- $tmpInfo = curl_exec($curl);
- if (curl_errno($curl)) {
- echo 'Errno'.curl_error($curl);
- }
- curl_close($curl);
- return $tmpInfo;
- }
-
- function vget($url){
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
- curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
- curl_setopt($curl, CURLOPT_HTTPGET, 1);
- curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']);
- curl_setopt($curl, CURLOPT_TIMEOUT, 30);
- curl_setopt($curl, CURLOPT_HEADER, 0);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- $tmpInfo = curl_exec($curl);
- if (curl_errno($curl)) {
- echo 'Errno'.curl_error($curl);
- }
- curl_close($curl);
- return $tmpInfo;
- }
-
- function vpost($url,$data){
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
- curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
- curl_setopt($curl, CURLOPT_POST, 1);
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
- curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']);
- curl_setopt($curl, CURLOPT_TIMEOUT, 30);
- curl_setopt($curl, CURLOPT_HEADER, 0);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- $tmpInfo = curl_exec($curl);
- if (curl_errno($curl)) {
- echo 'Errno'.curl_error($curl);
- }
- curl_close($curl);
- return $tmpInfo;
- }
-
- function delcookie($cookie_file){
- @unlink($cookie_file);
- }
-
-
- if(!file_exists($cookie_file)) {
- $str = vget('http://www.kalvin.cn/?action=login'); // 获取登录随机值
- preg_match("/name=\"formhash\" value=\"(.*?)\"/is",$str,$hash);
- vlogin('http://www.kalvin.cn/post.php','action=dologin&formhash='.$hash[1].'&username=aaa&password=bbb&clientcode=ccc'); // 登录获取Cookie
- }
- echo vget('http://www.kalvin.cn/');
- ?>
附件: curl_function.rar (1.14 K, 下载次数:298)
Tags: php, curl
学习┊取长补短 | 评论:4
| 阅读:6442
Submitted by 孤魂 on 2009, July 18, 4:35 PM
PHP代码
- <?php
- $option = array(
- 'http' => array(
- 'method' => "POST",
- 'header' => "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) \r\n Accept: */*",
- 'content' => "domain=www.kalvin.cn&author=kalvin",
- )
- );
- $xoption = stream_context_create($option);
- echo $str = file_get_contents("http://www.kalvin.cn", false, $xoption); // 执行请求
- print_r($http_response_header);
- ?>
File_get_contents 的 POST 方式需要 PHP5 以后才支持,孤魂原来还是习惯使用 Curl ,不过有的虚拟主机没有打开 Curl 扩展的情况下,就可以考虑使用到以上代码了。另外今天还看到了一个 http_build_query() 函数,以后整理火车头发布模块的数据包时,效率提高不少!
Tags: php, curl
学习┊取长补短 | 评论:2
| 阅读:3321
Submitted by 孤魂 on 2009, June 11, 8:11 AM
自php5.0开始,增加了如下是curl支持多线程的函数
curl_multi_init - initialize a new cURL multi handle.
It will return the cURL handle on success and FALSE on error.
curl_multi_add_handle — Add a cURL handle to a cURL multi handle.
curl_multi_exec — Runs all the curl handle in the cURL multi handle in parallel.
curl_multi_remove_handle — Removes a cURL handle from a cURL multi handle.
curl_multi_close — close the cURL multi handle.
» 阅读全文
Tags: php, curl
学习┊取长补短 | 评论:0
| 阅读:3495
Submitted by 孤魂 on 2009, March 6, 10:49 PM
PHP代码
- <?php
- function fileget($url){
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; )');
- curl_setopt($curl, CURLOPT_HEADER, 0);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($curl, CURLOPT_COOKIE, 'domain=www.kalvin.cn');
- $tmpInfo = curl_exec($curl);
- curl_close($curl);
- return $tmpInfo;
- }
- echo fileget('http://www.kalvin.cn/');
- ?>
附件中就有使用这个类的例子,远程获取网站内容,然后分析数据,得出结果,感觉很不错!
附件: img.rar (1.21 K, 下载次数:132)
Tags: php, curl
学习┊取长补短 | 评论:0
| 阅读:3165