首页 > 开发 > PHP > 正文

php模拟用户自动在qq空间发表文章的方法

2024-05-04 22:40:01
字体:
来源:转载
供稿:网友

本文实例讲述了php模拟用户自动在qq空间发表文章的方法。分享给大家供大家参考。具体分析如下:

我们这里是一个简单的利用php来模拟登录后再到QQ空间发送文章的一个简单的程序,有需要的朋友可以参考,或改进可以给我意见,代码如下:
代码如下:<?php
//模拟get post请求函数
/*
函数说明:
功能:请求方式可以get,post,可以发送的cookie,保存的cookiefile文件
参数:$url-----请求url    $referer---来源url    $postdata----------用于post请求的数据,''为get请求
$cookie---------发送的cookie     $cookiefile-----保存的cookiefile文件
返回值:返回获取的源码
*/
function request($url,$referer='',$postdata='',$cookie='',$cookiefile=''){
//header设置
$header='';
$header.="Content-Type: application/x-www-form-urlencodedrn";//内容请求类型
$header.="User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)rn";//浏览器字段
$header.="Referer:".$referer."rn";//设置来源地址
$header .= "Cookie:".$cookie ; //设置cookie,默认空
//请求方法get post,通过$postdata空---get,非空----post
if($postdata=='')$method='GET';
else $method='POST';
//定义用于创建流的数组
$opts=array();
$opts['http']=array('method'=>$method,'header'=>$header,'content'=>$postdata);
//生成流
$context=stream_context_create($opts);
//发送请求,获取源码
$yuanma=file_get_contents($url,false,$context);
//是否需要保存cookie到文件,$cookiefile不空时
if($cookiefile!=''){
echo '需要保存cookie<br>';
//判断保存文件存在,不存在创建
if(!file_exists($cookiefile)){
file_put_contents($cookiefile,'');
}
//获取cookie,保存起来
$response=implode("rn",$http_response_header);
//用正则匹配cookie
$zengze="/Set-Cookie:(.*?)rn/";
preg_match_all($zengze,$response,$cookie_arr);
//存在匹配,保存
if(!emptyempty($cookie_arr[1])){
$cookiestr=implode(';',$cookie_arr[1]);
file_put_contents($cookiefile,$cookiestr);
echo '成功保存cookie<br>';
}
else echo '没有匹配到cookie<br>';
}//end if($cookiefile!='')
//返回源码
return $yuanma;
}//end function request($url,$referer,$postdata,$cookie,$cookiefile) 
//获得当前的脚本网址 
function GetCurUrl() 

if(!emptyempty($_SERVER["REQUEST_URI"])) 

$scriptName = $_SERVER["REQUEST_URI"]; 
$nowurl = $scriptName; 

else 

$scriptName = $_SERVER["PHP_SELF"]; 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表