后台通过file_get_content("php://input")获取表单,如何解析带参数的完整值

<form>
<input type="text" name="goods_name" value="西瓜500g">
<input type="text" name="origin_url" value="https://www.baidu.com?page=50&since=2015">
<input type="text" name="price" value="10.0">
</form>

后端是通过file_get_content("php://input")接收的,请问如何解析完整的goods_name、origin_url、price这三个值?
网上有个方案是通过explode以‘&’为节点进行切割,但是这样做的话origin_url得到的是

“https://www.baidu.com?page=50” 

还多出了个since字段,而不是完整的

“https://www.baidu.com?page=50&since=2015”

有木有大神知道有什么方法能完整的解析出带参数的url值?

阅读 3.9k
2 个回答
$queryString = parse_url($url, PHP_URL_QUERY);
parse_str($queryString, $params);
var_dump($params);

感谢楼下指出,好久没用这俩函数了,忘记 parse_str 直接在参数里接收返回值了= =

新手上路,请多包涵

非常感谢,源码是这样的,
$packData=urldecode(file_get_contents( "php://input" ));
parse_str($packData,$params);//parse_str函数是无返回值的所以,$params = parse_str($queryString);是错误的写法
//var_dump($param);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题