PHP url strings conflict “?” and “&”

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=?

Answers


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

Need Your Help

Delete/replace or edit columns of an access table when updating daily

vba replace

I support an access database for which the primary data resource is a text file imported daily. The fields in the text file are variable. When the fields change, it impacts multiple tables within...

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.