php模拟post提交数据的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-13 11:48:06 浏览: 评论:0
这篇文章主要介绍了php模拟post提交数据的方法,实例分析了socket方法模拟post提交数据的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了php模拟post提交数据的方法。分享给大家供大家参考。具体如下:
php模拟post提交数据,用处很多,可用来网站的采集,登陆等等
这里以我项目中的论坛登录为例加以说明:
- function A_bbslogin($user_login,$password,$host,$port="80"){
- //需要提交的post数据
- $argv = array(
- 'cookie' => array('user_login' =>$user_login, 'password' => $password,'_wp_http_referer'=>'/bbpress/','re'=>'','remember'=>true)
- );
- foreach($argv['cookie'] as $key => $value) {
- $params[] = $key . '=' . $value;
- }
- $params = implode('&', $params);
- $header = "POST /bbpress/bb-login.php HTTP/1.1\r\n";
- $header .= "Host:$host:$port\r\n";
- $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
- $header .= "Content-Length: " . strlen($params) . "\r\n";
- $header .= "Connection: Close\r\n\r\n";
- $header .= $params;
- $fp = fsockopen($host, $port);
- fputs($fp, $header);
- while(!feof($fp)) {
- $str = fgets($fp); //以下是自己的逻辑代码,这里主要是模拟cookie,可用来同步登陆
- if(!(strpos($str,"Set-Cookie:") === false)){
- $tmparray = explode(" ",$str);
- $cookiearray = explode("=",$tmparray[1]);
- $cookiepaths = explode("=",$tmparray[6]);
- $cookiename = urldecode($cookiearray[0]);
- $cookievalue = urldecode(substr($cookiearray[1],0,strlen($cookiearray[1])-1));
- $cookietime = time()+3600*24*7;
- $cookiepath = urldecode(substr($cookiepaths[1],0,strlen($cookiepaths[1])-1));
- setcookie($cookiename,$cookievalue,$cookietime,$cookiepath);
- }
- }
- fclose($fp);
- }
Tags: php模拟post
- 上一篇:PHP进程同步代码实例
- 下一篇:php制作动态随机验证码
相关文章
- ·php实现模拟post请求用法实例(2021-06-11)
- ·PHP模拟post提交数据方法汇总(2021-07-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)