我想将GET参数添加到可能不包含GET参数的URL中,而无需重复?或&。
?
&
例:
如果我要添加 category=action
category=action
$url="http://www.acme.com"; // will add ?category=action at the end $url="http://www.acme.com/movies?sort=popular"; // will add &category=action at the end
如果您发现发现的问题,我会尽量不重复问号。
URL只是一个字符串。
附加特定GET参数的可靠方法是什么?
基本方法
$query = parse_url($url, PHP_URL_QUERY); // Returns a string if the URL has parameters or NULL if not if ($query) { $url .= '&category=1'; } else { $url .= '?category=1'; }
更先进
$url = 'http://example.com/search?keyword=test&category=1&tags[]=fun&tags[]=great'; $url_parts = parse_url($url); // If URL doesn't have a query string. if (isset($url_parts['query'])) { // Avoid 'Undefined index: query' parse_str($url_parts['query'], $params); } else { $params = array(); } $params['category'] = 2; // Overwrite if exists $params['tags'][] = 'cool'; // Allows multiple values // Note that this will url_encode all values $url_parts['query'] = http_build_query($params); // If you have pecl_http echo http_build_url($url_parts); // If not echo $url_parts['scheme'] . '://' . $url_parts['host'] . $url_parts['path'] . '?' . $url_parts['query'];
如果不是类,则应至少将其放在函数中。