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年 称看不得环境...
发表我的评论


推荐文章   媒体卧底茶叶市场爆惊人内幕:香味可调...   奖励分没了,会影响孩子学特长?   买房前、买房中、买房后 买房全程防“坑...   “你们的建议真的帮不了我…”这大概是...   难得一见的济南老照片!那年泉城路原来...
随机文章   PHP代码屏蔽中国的IP地址   PHP错误Warning: Cannot modify header...   PHP 不用iconv()函数 gbk转到unicode(u...   php 不用iconv()函数 UTF8转GB2312字符...   php中gb2312跟unicode码的转换
广告

其他推荐

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