php模拟post行为代码总结(POST方式不是绝对安全)
前端之家收集整理的这篇文章主要介绍了
php模拟post行为代码总结(POST方式不是绝对安全),
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这里提供两种方法供选择:第一:手写代码。第二:利用HttpClient PHP类库
第一种方法:
<div class="codetitle"><a style="CURSOR: pointer" data="75881" class="copybut" id="copybut75881" onclick="doCopy('code75881')"> 代码如下:
<div class="codebody" id="code75881">
<?
PHP $flag = 0;
//要post的数据
$argv = array(
'var1'=>'abc',
'var2'=>'你好吗');
//构造要post的字符串
foreach ($argv as $key=>$value) {
if ($flag!=0) {
$params .= "&";
$flag = 1;
}
$params.= $key."="; $params.= urlencode($value);
$flag = 1;
}
$length = strlen($params);
//创建socket连接
$fp = fsockopen("127.0.0.1",80,$errno,$errstr,10) or exit($errstr."--->".$errno);
//构造post请求的头
$header = "POST /mobile/try.
PHP HTTP/1.1";
$header .= "Host:127.0.0.1";
$header .= "Referer:/mobile/sendpost.
PHP";
$header .= "Content-Type: application/x-www-form-urlencoded";
$header .= "Content-Length: ".$length."";
$header .= "Connection: Close";
//
添加post的字符串
$header .= $params."";
//发送post的数据
fputs($fp,$header);
$inheader = 1;
while (!feof($fp)) {
$line = fgets($fp,1024); //
去除请求包的头只
显示页面的返回数据
if ($inheader && ($line == "n" || $line == "")) {
$inheader = 0;
}
if ($inheader == 0) {
echo $line;
}
}
fclose($fp);
?>