curl json将'sect'替换为url中的section sign

时间:2014-12-28 17:45:38

标签: php json curl

我有点问题。我的代码:

 <?php 
$url = "http://xxxx/duplicate";

$data = array (
userId                          =>      xxxx, // authentication userId
loginToken                      =>      'xxxx', // authentication loginToken
 "id"                            =>      "123456",
 'section'                       =>      'LotRental',

);
 $data_string = http_build_query($data);
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

 $result = curl_exec($ch);
 curl_close($ch); 
 print_r ($result);
echo json_encode($data_string);
?>

但它创建了这个帖子:

userId=xxxx&loginToken=xxxx&id=123456§ion=LotRental

它将“section”更改为“§ion”

请求看起来像:

userId=xxxx&loginToken=xxxx&id=123456&section=LotRental

如何解决? 感谢

更新

我可以通过两种方式复制我的项目:上面的卷曲或只是在浏览器中输入网址

当我执行我的php脚本时,我收到来自服务器的错误:

HTTP ERROR: 405

METHOD_NOT_ALLOWED
RequestURI=xxxx/duplicate.dispatch

但是当我输入浏览器时

http://xxxx/duplicate?userId=xxxx&loginToken=xxxx&id=123456&section=LotRental

一切正常

1 个答案:

答案 0 :(得分:0)

脚本本身就可以了。到它的输出。看起来您正在浏览器中查看此脚本的输出。然后,您必须在将输出发送到浏览器之前对输出进行正确的HTML编码,但您似乎对它进行JSON编码。所以而不是:

echo json_encode($data_string);
你会用:

echo htmlentities($data_string);