首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php post请求,该如何解决

2012-07-30 
php post请求在php里面怎么提交一个post请求,我要请求一个网址,传参数进去。他会返回一个xml格式的文件结果

php post请求
在php里面怎么提交一个post请求,我要请求一个网址,传参数进去。他会返回一个xml格式的文件结果。在php里面怎么post。

[解决办法]
function _xpost($url,$p)
{
$f='';
$data='';
foreach($p as $k=>$v)
{
$data.=$f.$k.'='.urlencode($v);
$f='&';
}

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$res = curl_exec($curl);

if(curl_errno($curl))
{
echo 'Curl error: ' . curl_error($curl);
}
curl_close($curl);
return $res;
}

$x=_xpost('http://abc.com/aa.php',array('username'=>$uname,
));
[解决办法]
顶一楼 用curl
[解决办法]
xml 请使用simplexml来解析.学好simplexml 以后碰到xml都不用担心了.

探讨

还有个问题请教,如果$x=_xpost('http://abc.com/aa.php',array('username'=>$uname));接收到的数据是一个xml:
<?xml version="1.0" encoding="UTF-8" ?>
<result>
<response>1</response>
</result>
我怎么获取<response>之间的1这个值?

[解决办法]
简单点正则之,
preg_match('/<response>(.*?)<\/response>/s',$xml,$m);
echo $m[1];
[解决办法]
探讨

还有个问题请教,如果$x=_xpost('http://abc.com/aa.php',array('username'=>$uname));接收到的数据是一个xml:
<?xml version="1.0" encoding="UTF-8" ?>
<result>
<response>1</response>
</result>
我怎么获取<response>之间的1这个值?

[解决办法]
simplexml
[解决办法]
顶6楼 正则很强大

热点排行