使用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知识请持续关注本站,谢谢。