PHP url strings conflict “?” and “&”

2019-07-25 15:47发布

I have a lang system in my website. When people click to switch to another language, the following will be added to the url: ?lang=. The problem is, my website is divided by pages which add ?p= to the url aswell. So basically, if they change the lang on one of those pages, it'll overwrite the ?p= and go back to the main page. So it'll be index.php?lang=.

What is the code or how should I code it so that php verifies if there's already a ? string in the url and switch ?lang= to &lang=?

标签: php string url
2条回答
家丑人穷心不美
2楼-- · 2019-07-25 16:31

check if $_SERVER['QUERY_STRING'] is empty.

if yes, add ?lang= otherwise add &lang=

查看更多
beautiful°
3楼-- · 2019-07-25 16:38

You can use http_build_query to avoid this problems:

$params = array(
    'p'    => 'foo',
    'lang' => 'bar'
);

echo http_build_query($params); // p=foo&lang=bar

echo '?' . http_build_query($params); // ?p=foo&lang=bar
查看更多
登录 后发表回答