//php脚本开始
/*Get请求远程内容函数
url请求网址
head模似请求头
foll是否自动跳转
ref来路
head是否设置头
*/
$ip=$_SERVER['REMOTE_ADDR'];
$head=array(
'X-FORWARDED-FOR:'.$ip,
'CLIENT-IP:'.$ip,
'Accept-Language: zh-cn',
'Accept-Encoding:gzip,deflate',
'Connection: Keep-Alive',
'Cache-Control: no-cache'
);
$cookie_file=dirname(__FILE__).'/cookie.txt';//COOKIE存放地址
functionget($url,$head=false,$foll=1,$ref=false){
$curl=curl_init();//启动一个CURL会话
if($head){
curl_setopt($curl,CURLOPT_HTTPHEADER,$head);//模似请求头
}
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,$foll);//使用自动跳转
if($ref){
curl_setopt($curl,CURLOPT_REFERER,$ref);//带来的Referer
}else{
curl_setopt($curl,CURLOPT_AUTOREFERER,1);//自动设置Referer
}
curl_setopt($curl,CURLOPT_HTTPGET,1);//发送一个常规的Post请求
curl_setopt($curl,CURLOPT_COOKIEJAR,$GLOBALS['cookie_file']);//存放Cookie信息的文件名称
curl_setopt($curl,CURLOPT_COOKIEFILE,$GLOBALS['cookie_file']);//读取上面所储存的Cookie信息
curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');//解释gzip
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);}
$data[]=curl_getinfo($curl);
curl_close($curl);//关键CURL会话
$data[]=$tmpInfo;
return$data;//返回数据
}
functionpost($url,$head=false,$foll=1,$ref=false,$post){
$curl=curl_init();//启动一个CURL会话
if($head){
curl_setopt($curl,CURLOPT_HTTPHEADER,$head);//模似请求头
}
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,$foll);//使用自动跳转
if($ref){
curl_setopt($curl,CURLOPT_REFERER,$ref);//带来的Referer
}else{
curl_setopt($curl,CURLOPT_AUTOREFERER,1);//自动设置Referer
}
curl_setopt($curl,CURLOPT_POST,1);//发送一个常规的Post请求
curl_setopt($curl,CURLOPT_POSTFIELDS,$post);// Post提交的数据包
curl_setopt($curl,CURLOPT_COOKIEJAR,$GLOBALS['cookie_file']);//存放Cookie信息的文件名称
curl_setopt($curl,CURLOPT_COOKIEFILE,$GLOBALS['cookie_file']);//读取上面所储存的Cookie信息
curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');//解释gzip
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);}
$data[]=curl_getinfo($curl);
curl_close($curl);//关键CURL会话
$tmpInfo=preg_replace('/script/','js',$tmpInfo);
$data[]=$tmpInfo;
return$data;//返回数据
}
//截取字符
functionpreg_message($message,$rule,$getstr,$limit=1) {
$result=array('0'=>'');
$rule= conver_trule($rule);//转义正则表达式特殊字符串
$rule=str_replace('\['.$getstr.'\]','\s*(.+?)\s*',$rule);//解析为正则表达式
if($limit==1) {
preg_match("/$rule/is",$message,$rarr);
if(!empty($rarr[1])) {
$result[0] =$rarr[1];
}
}else{
preg_match_all("/$rule/is",$message,$rarr);
if(!empty($rarr[1])) {
$result=$rarr[1];
}
}
return$result;
}
/**
*转义正则表达式字符串
*/
functionconver_trule($rule) {
$rule=preg_quote($rule,"/");//转义正则表达式
$rule=str_replace('\*','.*?',$rule);
$rule=str_replace('\|','|',$rule);
return$rule;
}
/*转编码*/
functionescape($str) {
preg_match_all("/[-].|[\x01-�]+/",$str,$r);
$ar=$r[0];
foreach($aras$k=>$v) {
if(ord($v[0]) <128)
$ar[$k] =rawurlencode($v);
else
$ar[$k] ="%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
returnjoin("",$ar);
}