使用php可以模拟post和get传送数据到别的网页或者是站点,那么怎么传送数据呢?下面由小编给大家介绍利用PHP fsockopen 模拟POST/GET传送数据的方法,需要的朋友

使用php可以模拟 post 和 get 传送数据到别的网页或站点

$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); $info = parse_url($url); $port = isset($info['port'])? $info['port'] : ; $query_str = empty($info["query"])?$query_str:$info["query"].'&'.$query_str; $fp = fsockopen($info["host"], $port, $errno, $errstr, ); if(!$fp){return FALSE; } //$head = "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)){$line = fread($fp,);echo $line; } fclose($fp); return true;}//fsockopen模拟POSTfunction sock_post($url,$data=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: ".$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知识请持续关注本站,谢谢。

08-30 14:14