> php教程 > php手册 > 利用fsocket模拟GET和POST请求

利用fsocket模拟GET和POST请求

WBOY
풀어 주다: 2016-06-13 10:50:35
원래의
882명이 탐색했습니다.

[php]
//fsocket模拟get提交  
$gurl = "http://localhost/php/t.php?uu=gggggg";  
//print_r(parse_url($gurl));  
echo "以下是GET方式的响应内容:
"; 
sock_get($gurl);   
function sock_get($url)  
{  
$info = parse_url($url);  
$fp = fsockopen($info["host"], 80, $errno, $errstr, 3);  
$head = "GET ".$info['path']."?".$info["query"]." HTTP/1.0\r\n";  
$head .= "Host: ".$info['host']."\r\n";  
$head .= "\r\n";  
$write = fputs($fp, $head);  
while (!feof($fp))  
{  
$line = fgets($fp); 
echo $line."
";  
}  
}  
 
 
 
//fsocket模拟post提交 
$purl = "http://localhost/php/t.php"; 
echo "以下是POST方式的响应内容:
"; 
sock_post($purl,"uu=rrrrrrrrrrrr&&kk=mmmmmm");   
function sock_post($url, $query)  
{  
$info = parse_url($url);  
$fp = fsockopen($info["host"], 80, $errno, $errstr, 3);  
$head = "POST ".$info['path']." HTTP/1.0\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 = fgets($fp);  
echo $line."
";  
}  
}  
?>  

请求的响应页面t.php
[php]
if(isset($_GET['uu'])){ 
    echo 't.php中$_GET["uu"]的值是:'.$_GET['uu']."
"; 

if(isset($_POST['uu'])){ 
    echo 't.php中$_POST的值是:
'; 
    print_r($_POST); 
}    
?> 

以下为运行结果:


以下为Firebug的查看结果:

 
作者:Fanteathy

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿