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

利用fsocket模拟GET和POST请求

WBOY
Release: 2016-06-13 10:50:35
Original
882 people have browsed it

[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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template