php - parse_str 只返回第一个参数
问题描述
所以我写了一些代码应该简单地接受这个
title=title&description=description&image=(some image here)&color=ff0000
并返回这个
echo $meta["title"] //title
echo $meta["description"] //description
echo $meta["image"] //(some image here)
echo $meta["color"] //ff0000
相反,它仅出于某种原因返回标题......
<?php
$url = $_SERVER["REQUEST_URI"];
$url = substr($url, 2);
$url = base64_decode($url);
// title=title&description=description&image=(some image here)&color=ff0000
// confusing part
parse_str($url, $meta);
?>
解决方案
这种事怎么办?
$string = 'title=title&description=description&image=(some image here)&color=ff0000';
$array = explode("&", $string);
$finalArray = [];
foreach ($array as $arr) {
$singleArr = explode("=",$arr);
$finalArray[$singleArr[0]] = $singleArr[1];
}
print("<pre>".print_r($finalArray,true)."</pre>");
这将打印出:
Array
(
[title] => title
[description] => description
[image] => (some image here)
[color] => ff0000
)
而不是重新发明轮子:)(谢谢@u_mulder)
$urlString = parse_url($string, PHP_URL_QUERY);
parse_str($urlString, $urlArray);
print_r($urlArray["image"]); // Or what ever paramneter, like
foreach($urlArray as $key => $value) {
echo $urlArray[$key];
}
推荐阅读
- javascript - 在 JavaScript 中,如何在任何变量中为 String 使用 Xpath
- mysql - 为什么我得到 MySQLdb._exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
- azure - Blob 触发器中的音频到文本
- sql - 是否有可以执行此操作的 SQL 查询?
- javascript - 表单验证 - 电子邮件和密码
- ios - 如何实时减少swift mapkit中的路线方向距离
- sql-server - Wildfly 空闲/挂起连接超时
- google-oauth - 从 Google 登录和 Google 课堂迁移
- python - Spyder Plotly - 一个浏览器窗口中的多个绘图
- sql - Oracle Query 仅基于时间条件获取数据