如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的

2018-09-07 12:03

阅读:415

  
可以使用以下函数来实现:

<?php
functionposttohost($url,$data){
$url=parse_url($url);
if(!$url)returncouldntparseurl;
if(!isset($url[port])){$url[port]=;}
if(!isset($url[query])){$url[query]=;}

$encoded=;

while(list($k,$v)=each($data)){
$encoded.=($encoded?&:);
$encoded.=rawurlencode($k).=.rawurlencode($v);
}

$fp=fsockopen($url[host],$url[port]?$url[port]:80);
if(!$fp)returnFailedtoopensocketto$url[host];

fputs($fp,sprintf(POST%s%s%sHTTP/1.0\n,$url[path],$url[query]??:,$url[query]));
fputs($fp,Host:$url[host]\n);
fputs($fp,Content-type:application/x-
fputs($fp,Content-length:.strlen($encoded).\n);
fputs($fp,Connection:close\n\n);

fputs($fp,$encoded\n);

$line=fgets($fp,1024);
if(!eregi(^HTTP/1\..200,$line))return;

$results=;$inheader=1;
while(!feof($fp)){
$line=fgets($fp,1024);
if($inheader&&($line==\n$line==\r\n)){
$inheader=0;
}
elseif(!$inheader){
$results.=$line;
}
}
fclose($fp);

return$results;
}
?>
--------------------------------------------------------------------------------------------------
也可以这样

<?php
$URL=
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,Data1=blah&Data2=blah);
curl_exec($ch);
curl_close($ch);
?>



评论


亲,登录后才可以留言!