使用php可以模拟 post 和 get 传送数据到别的网页或站点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
$arr = array (
'user' => 'test' ,
'password' => ''
);
sock_get( $post_url , $arr );
sock_post( $post_url , $arr );
//fsocket模拟get提交
function sock_get( $url , $query = array ()){
$query_str = http_build_query( $query );
$<span id= "_nwp" style= "width: auto; height: auto; float: none;" ><a id= "_nwl" href= "http://cpro.baidu.com/cpro/ui/uijs.php?adclass=&app_id=&c=news&cf=&ch=&di=&fv=&is_app=&jk=ecbeccb&k=info&k=info&kdi=&luki=&n=&p=baidu&q=_cpr&rb=&rs=&seller_id=&sid=bccbece&ssp=&stid=&t=tpclicked_hc&td=&tu=u&u=http%A%F%Fwww%Eixuexiwang%Ecom%Fphp%Dfunction%F%F%F%Ehtml&urlid=" target= "_blank" mpid= "" style= "text-decoration: none;" ><span style= "color:#ff;font-size:px;width:auto;height:auto;float:none;" >info</span></a></span> = parse_url ( $url );
$port = isset( $info [ 'port' ])? $info [ 'port' ] : ;
$query_str = empty ( $info [ "query" ])? $query_str : $info [ "query" ]. '&' . $query_str ;
if (! $fp ){
return FALSE;
}
//$<span id="_nwp" style="width: auto; height: auto; float: none;"><a id="_nwl" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=&app_id=&c=news&cf=&ch=&di=&fv=&is_app=&jk=ecbeccb&k=head&k=head&kdi=&luki=&n=&p=baidu&q=_cpr&rb=&rs=&seller_id=&sid=bccbece&ssp=&stid=&t=tpclicked_hc&td=&tu=u&u=http%A%F%Fwww%Eixuexiwang%Ecom%Fphp%Dfunction%F%F%F%Ehtml&urlid=" target="_blank" mpid="" style="text-decoration: none;"><span style="color:#ff;font-size:px;width:auto;height:auto;float:none;">head</span></a></span> = "GET ".$info['path']."?".$info["query"]." HTTP/.\r\n";
$head = "GET " . $info [ 'path' ]. "?" . $query_str . " HTTP/.\r\n" ;
$head .= "Host: " . $info [ 'host' ]. "\r\n" ;
$head .= "\r\n" ;
$write = fputs ( $fp , $head );
while (! feof ( $fp )){
$<span id= "_nwp" style= "width: auto; height: auto; float: none;" ><a id= "_nwl" href= "http://cpro.baidu.com/cpro/ui/uijs.php?adclass=&app_id=&c=news&cf=&ch=&di=&fv=&is_app=&jk=ecbeccb&k=line&k=line&kdi=&luki=&n=&p=baidu&q=_cpr&rb=&rs=&seller_id=&sid=bccbece&ssp=&stid=&t=tpclicked_hc&td=&tu=u&u=http%A%F%Fwww%Eixuexiwang%Ecom%Fphp%Dfunction%F%F%F%Ehtml&urlid=" target= "_blank" mpid= "" style= "text-decoration: none;" ><span style= "color:#ff;font-size:px;width:auto;height:auto;float:none;" >line</span></a></span> = fread ( $fp ,);
echo $line ;
}
fclose( $fp );
return true;
}
//fsockopen模拟POST
function sock_post( $url ,$<span id= "_nwp" style= "width: auto; height: auto; float: none;" ><a id= "_nwl" href= "http://cpro.baidu.com/cpro/ui/uijs.php?adclass=&app_id=&c=news&cf=&ch=&di=&fv=&is_app=&jk=ecbeccb&k=data&k=data&kdi=&luki=&n=&p=baidu&q=_cpr&rb=&rs=&seller_id=&sid=bccbece&ssp=&stid=&t=tpclicked_hc&td=&tu=u&u=http%A%F%Fwww%Eixuexiwang%Ecom%Fphp%Dfunction%F%F%F%Ehtml&urlid=" target= "_blank" mpid= "" style= "text-decoration: none;" ><span style= "color:#ff;font-size:px;width:auto;height:auto;float:none;" >data</span></a></span>= array ()){
$query = http_build_query( $data );
$info = parse_url ( $url );
$fp = fsockopen ( $info [ "host" ], , $errno , $errstr , );
$head = "POST " . $info [ 'path' ]. "?" . $info [ "query" ]. " HTTP/.\r\n" ;
$head .= "Host: " . $info [ 'host' ]. "\r\n" ;
$head .= "Referer: http://" . $info [ 'host' ]. $info [ 'path' ]. "\r\n" ;
$head .= "Content-type: application/x-www-form-urlencoded\r\n" ;
$head .= "Content-Length: " . strlen (trim( $query )). "\r\n" ;
$head .= "\r\n" ;
$head .= trim( $query );
$write = fputs ( $fp , $head );
while (! feof ( $fp ))
{
$line = fread ( $fp ,);
echo $line ;
}
}
|
以上内容是给大家分享的利用PHP fsockopen 模拟POST/GET传送数据的方法,希望大家能够喜欢,更多有关php fsockopen知识请持续关注本站,谢谢。