PHP模拟post,get

原创 2012年03月30日 16:12:02
post调用
$URL = 'http://xx/xx/xx/'; //需要提交到的页面
//下面这段是要提交的数据
$post_data['email'] = $_POST['email'];
$post_data['password'] = $_POST['password'];
echo get_postData($URL,$post_data);


get调用
$URL = 'http://xx/xx/xx/?token='.$token; //需要提交到的页面
echo get_getData($URL);



function get_getData($URL){
$ch = curl_init($URL) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;
$output = curl_exec($ch) ;
curl_close($fch) ;
return $output;
}




function get_postData($URL,$post_data){
$referrer="";
$URL_Info=parse_url($URL);
if($referrer==""){
    $referrer=$_SERVER["SCRIPT_URI"];
}
foreach ($post_data as $key=>$value){
    $values[]="$key=".urlencode($value);
}

$data_string=implode("&",$values);
if (!isset($URL_Info["port"])) {
$URL_Info["port"]=80;
$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
$request.="Host: ".$URL_Info["host"]."\n";
$request.="Referer: $referrer\n";
$request.="Content-type: application/x-www-form-urlencoded\n";
$request.="Content-length: ".strlen($data_string)."\n";
$request.="Connection: close\n";
$request.="\n";
$request.=$data_string."\n";
}
$fp = fsockopen($URL_Info["host"], $URL_Info["port"]);
fputs($fp, $request);
$i = 0;
while(!feof($fp)) {
$result = fgets($fp, 1024);
$length = strlen($result);
$s1 = substr($result, 0, 1);
$s2 = substr($result, $length - 3, 1);
if($s1 == '{' && $s2 == '}')
$resultover = $result;
}

fclose($fp);
return $resultover;
}
 
 
 
 
 
 
 

相关文章推荐

CURL封装的php http和https请求网页模拟post get函数

/************************* CURL *******************************/ //CURL 获此网页内容 function curl_get_co...

php 模拟get/post封装类

  • 2015年01月15日 11:10
  • 3KB
  • 下载

php模拟get和post的几种方法

方法一:$re = file_get_contents($url); print_r($re); 方法二:$ch = curl_init("http://www.jb51.net/") ; curl...

[php]模拟socket发送GET,POST请求

模拟socket发送GET,POST请求  作为php程序员一定会接触http协议,也只有深入了解http协议,编程水平才会更进一步。最近我一直在学习php的关于http的编程,许多东西恍然大悟,受益...
  • kajweb
  • kajweb
  • 2017年08月09日 03:50
  • 380

PHP使用CURL模拟POST/GET/PUT/DELETE方式提交数据

最近因为工作需要,调用网盘接口来上传文件,我用了CURL库, 当然在用CURL库之前必须要在php中启用 cURL 设置 可以通过使用php_info()函数来得到cURL信息,如果看不到cUR...

PHP模拟GET和POST提交数据

/* *@param String $url是请求地址 *@param Array $getData 是GET数据 *@param Array $postData ...

php使用curl可以get 模拟post

本机windows测试需要打开curl   php.iniextension=php_curl.dll重启apache include ('Curl.php'); $cu=new QP_Curl_C...

php 模拟浏览器 发送 post 和 get 请求(兼容curl + file_get_contents)

php 模拟浏览器 发送 post 和 get 请求(兼容curl + file_get_contents)function http_data($url,Array $data,$method='g...
  • jqqjj
  • jqqjj
  • 2015年12月08日 12:42
  • 257
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP模拟post,get
举报原因:
原因补充:

(最多只允许输入30个字)