php模拟post提交数据,可用来网站的采集,登陆等等

添加时间:14-10-14 所属分类:PHP工具与代码
  http://www.oschina.net/code/snippet_127872_6370

[code]<?php

//以程序登陆一个论坛登录为例
function 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);
}
?>[/code]
  • 2

前篇:php防止form重复提交的方法 后篇:退休校长带儿子为邻里修路15年 称看不得环境...
发表我的评论


推荐文章   妈妈为女儿列相亲预约表 被吐槽像福布斯...   87岁退休教师变卖上海唯一房产 捐建希望...   实用工具或者组件、框架及类库   妈妈记录一天内女儿44个迷之哭点…看完...   贫困尖子生的71个生存瞬间
随机文章   install.php简单制作   PHP中UBB的使用   mysql中engine=innodb和engine=myisam的...   基于PHP读取TXT文件向数据库导入海量数...   流行的开源PHP框架排行榜
广告

其他推荐

因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555