<?php
$cookie_file = dirname(__FILE__).”/cookie_”.md5(basename(__FILE__)).”.txt”; // 设置Cookie文件保存路径及文件名
function vlogin($url,$data){ // 模拟登录获取Cookie函数
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名称
curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo ‘Errno’.curl_error($curl);
}
curl_close($curl); // 关闭CURL会话
return $tmpInfo; // 返回数据
}
function vget($url){ // 模拟获取内容函数
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_HTTPGET, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo ‘Errno’.curl_error($curl);
}
curl_close($curl); // 关闭CURL会话
return $tmpInfo; // 返回数据
}
function vpost($url,$data){ // 模拟提交数据函数
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo ‘Errno’.curl_error($curl);
}
curl_close($curl); // 关键CURL会话
return $tmpInfo; // 返回数据
}
function delcookie($cookie_file){ // 删除Cookie函数
@unlink($cookie_file); // 执行删除
}
// 使用实例
if(!file_exists($cookie_file)) { // 检测Cookie是否存在
$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/’);
分享到:
相关推荐
在PHP开发中,cURL库是一个非常强大的工具,它允许开发者通过HTTP协议与其他网络协议进行交互,例如FTP、SMTP等。这个"php的curl整合类.zip"文件提供了一个封装好的PHP类,使得开发者可以更方便地利用cURL功能,模拟...
curl_setopt($ch, CURLOPT_URL, 'https://weibo.com/login.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回数据而不是直接输出 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 跟随重定向 ...
curl_setopt($ch, CURLOPT_REFERER, "login_page_url"); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie_filename.txt'); // 保存Cookie curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie_filename.txt'); // 使用...
**PHP CURL详解** PHP的CURL库是一种强大的工具,用于在服务器端执行HTTP请求,它支持多种协议,包括HTTP、HTTPS、FTP、FTPS等,是网页抓取、模拟POST和GET请求的重要手段。CURL使得PHP开发者可以方便地与远程...
在PHP中,`curl`扩展提供了丰富的函数,如`curl_init()`用于初始化一个cURL会话,`curl_setopt()`设置各种选项,以及`curl_exec()`执行请求。 模拟登录通常涉及以下几个步骤: 1. **发送登录请求**:使用`curl_...
$ch = curl_init('https://login.126.com/'); // 初始化cURL会话 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设置返回结果为字符串而非直接输出 curl_setopt($ch, CURLOPT_POST, true); // 设置为POST请求...
标题 "PHP CURL MSN好友邀请 MSN邮箱登录" 涉及到的技术点主要集中在PHP编程语言中的cURL库以及如何使用它来处理MSN(Microsoft Network)的好友邀请和邮箱登录功能。cURL是一个用于传输数据的库,常用于在PHP中发送...
在PHP开发中,cURL库是一个非常强大的工具,它允许开发者通过HTTP协议发送各种请求,包括GET、POST、PUT等,还可以实现模拟登录、设置HTTP头、管理cookies等功能。本篇将详细介绍如何利用PHP的cURL库进行模拟登录并...
在本文中,我们将深入探讨如何使用PHP的CURL库来获取邮箱地址。CURL(Client URL Library)是一个强大的工具,可以模拟HTTP请求,包括GET、POST等,常用于页面抓取、模拟登录以及数据采集。以下是一个使用PHP CURL...
CURL 模似HTTP请求工具 支持以下功能: * 1:支持ssl连接和proxy代理连接 ...include('clsss/class.curl.php'); $cu = new Curl(); //得到 baidu 的首页内容 echo $cu->get('http://www.baidu.com');
$url = "http://www.mytest.com/curl/login.php"; // 请求的URL地址 $user = "zkg111"; // 用户名 $pass = "123456"; // 密码 $postdata = "user_name={$user}&password={$pass}"; // 请求的数据,以 & 符号分割 $...
php$curl = curl_init();$url = ‘https://www.jb51.net/admin/gateway/login’;$data = array( ‘username’=>’admin’, ‘password’=>’123’);$cookie = tempnam(‘./temp’,’cookie’);curl_setopt($curl,...
本文实例讲述了PHP基于curl模拟post提交json数据。分享给大家供大家参考,具体如下: 这里php模拟post提交json数据操作的关键是在头部设置Content-Type <?php header(Content-type:application/json;charset=utf...
1. **登录URL**:`https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)_=1403138799543` 2. **准备登录数据**:设置如`entry`、`gateway`、`from`等必要参数,以及用户登录名(base64编码)和密码...
- `curl_init($login_url)`:初始化一个cURL会话。 - `curl_setopt`函数的使用,设置cURL选项,例如: - `CURLOPT_USERAGENT`:指定用户代理字符串。 - `CURLOPT_HEADER`:设置是否包含头部在输出中。 - `...
PHP的curl()在抓取网页的效率方面是比较高的,而且支持多线程,而file_get_contents()效率就要稍低些,当然,使用curl时需要开启下curl扩展。 代码实战 先来看登录部分的代码: //模拟登录 function login_...
$ch = curl_init($login_url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'); curl_setopt($ch, CURLOPT_HEADER, 0); curl_...
curl_setopt($ch, CURLOPT_URL, $login_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 指定cookie文件,用于存储或读取cookie curl_setopt($ch, CURLOPT_COOKIEJAR...
在PHP开发中,cURL库是一个非常重要的工具,它允许开发者通过HTTP协议与其他服务器进行交互,包括模拟登录、抓取网页内容以及发送各种HTTP请求。本文以PHP中的cURL库为例,详细介绍如何模拟登录和获取数据,特别是...