【发布时间】:2016-03-05 14:41:59
【问题描述】:
我的网站上的网址有一些问题。我正在尝试使用给定的 GET 参数获取链接,但我也获取了之前的参数。
我的网址如下所示:
www.cdwinkel.dev/search-results?genre=Pop&medium=DVD&medium=Single。
应该是:
www.cdwinkel.dev/search-results?genre=Pop&medium=Single。
我正在运行以下代码:
$data['url'] = createurl();
function createurl(){
$i = 1;
$string = "?";
$keys = array_keys($_GET);
foreach($_GET as $get){
if($get != ""){
$string .= $keys[$i] . "=" . $get ."&";
$i++;
}
}
$string = rtrim($string, "&");
return $string;
}
$i = 1,因为我的数组中的第一个值是空的。
我的按钮看起来像这样:
<a href='".$data['url'].'&medium='.$names[$i]."'>
我想我不应该在 href 标记中设置 &medium=.$names[$i], 但我不会在我的函数中获得新的 $names[$i],所以如果我不添加它,我将不会获得新的 url。
期待您的回复。
真诚地, 卡尔斯拍摄
【问题讨论】:
-
把你的参数放到一个数组里,然后用
http_build_query代替你自己写的函数(严重缺乏,因为它不能正确处理URL编码。) -
我试过这个,但我得到了一个奇怪的回报。我想这是因为我以错误的方式创建我的数组。我的输入数组看起来像:0 => 'genre' => 'jazz'',1 => 'medium' => 'LP''。它应该是流派 => 爵士乐。但我无法完成这项工作
-
那么以正确的方式构建您的输入数组,从...开始?
-
我得到了正确的数组 atm。但我仍然对双参数遇到同样的问题。
-
为什么,你的数组中有那些双打吗?您可能应该显示一些当前代码。