Question: If I have a URL like asdf.com/index.php?a=0&b=2, then using $\_GET for `a` would be 0 and for `b` would be 2. However, the term I put into a single $\_GET function has an ampersand in it already, like a=Steak&Cheese. Is there a way to make ampersands work without the $\_GET variable thinking its job ends when the ampersand shows up (therefore not pulling the entire term)?

Answer: 
[`urlencode()`](http://www.php.net/manual/en/function.urlencode.php) it so `&` turns into `%26`.

If you need to make a query string out of some parameters, you can use [`http_build_query()`](http://www.php.net/manual/en/function.http-build-query.php) instead and it will URL encode your parameters for you.

On the receiving end, your `$_GET` values will be decoded for you by PHP, so the query string `a=Steak%26Cheese` corresponds to `$_GET = array('a' => 'Steak&Cheese')`.
Here is a previous post covering this in jquery AJAX requests, but to summarize you have to encoded the uri. This will convert the ampersand value to a ascii value. 
[Ampersand in GET, PHP](https://stackoverflow.com/questions/2748042/ampersand-in-get-php)