使用PHP我需要检查我附加信息的URL是否已经有参数。
所以如果网址是
http://test.com/url?a=1
我需要加上& b = 2,即
http://test.com/url?a=1&b=2
但是,如果网址是
http://test.com/url
我需要追加
http://test.com/url?b=2
可以在PHP中检查这个吗?总之,我需要使用正确的分隔符附加b = 2参数(如果现有链接中没有,则为“?”,如果现有链接中已存在“?”,则为“&”)。
答案 0 :(得分:3)
不要检查,但要装配一个新的 使用$ _GET数组和http_build_query()函数
答案 1 :(得分:1)
您可以使用parse_url()
。
然后使用parse_str()
获取查询片段,修改数组并使用http_build_query()重新创建查询字符串。
答案 2 :(得分:0)
使用此功能,您可以拨打set('b', 2)
或使用set(array('a' => 1, 'b' => 2, 'c' => 3))
一次设置多个值。
function set($name, $value='', $vars='') {
if (!$vars) $vars = $_SERVER['QUERY_STRING'];
parse_str($vars, $a);
if (!is_array($name)) $name = array($name => $value);
foreach ($name as $k => $v) {
$a[$k] = $v;
if ($v === '') unset($a[$k]);
}
$q = '';
foreach ($a as $k => $v) $q .= ($q ? '&' : '') . $k . '=' . $v;
return $q ? '?' . $q : '';
}