Change the PHP Query String Variable Separator Using php.ini

By  on  

As you probably know, the default PHP query string variable separator is the "&" character. One annoyance with using the "&" character is that, in order to have valid XHTML syntax, you need to output your &'s as "&". If you'd like to avoid all of that mess, you can simply change the separating character to a semi-colon (;). Here's how:

The PHP

//inside the php.ini file
arg_separator.input = ";"

//example URL:  /page.php?key1=value1;key2=value2;key3=value3

There you go -- one easy step to outputting cleaner URLs. Do any of you use this method?

Recent Features

  • By
    Write Better JavaScript with Promises

    You've probably heard the talk around the water cooler about how promises are the future. All of the cool kids are using them, but you don't see what makes them so special. Can't you just use a callback? What's the big deal? In this article, we'll...

  • By
    Regular Expressions for the Rest of Us

    Sooner or later you'll run across a regular expression. With their cryptic syntax, confusing documentation and massive learning curve, most developers settle for copying and pasting them from StackOverflow and hoping they work. But what if you could decode regular expressions and harness their power? In...

Incredible Demos

  • By
    Create a Sexy Persistent Header with Opacity Using MooTools or jQuery

    I've been working with the Magento eCommerce solution a lot lately and I've taken a liking to a technique they use with the top bar within their administrative control panel. When the user scrolls below a specified threshold, the top bar becomes attached to the...

  • By
    CSS Fixed Position Background Image

    Backgrounds have become an integral part of creating a web 2.0-esque website since gradients have become all the rage. If you think gradient backgrounds are too cliche, maybe a fixed position background would work for you? It does provide a neat inherent effect by...

Discussion

  1. Personally I set it to & which validates fine.

    and if you don’t have access to the ini file the following works:

    ini_set('arg_separator.output','&');
  2. pretty useful

  3. Didnt know this one, thx ;)

  4. And how Search engines see on this trick?

  5. @wsr: Search engine sees it as the same — you wouldn’t be penalized by this.

  6. @david: Maybe, but standart is “&” and many SE use this symbol to explode and analyze query string…

  7. I think this will break a 3rd party CMS(like wordpress).

  8. Alex

    Think SEO

  9. If you really want to display pretty URLs it’s better to use mod_rewrite.

  10. Keep in mind that XML invalidates the & symbol when it’s located in the href tag.
    To validate your XML you have to supply & EG: href=”?i=1&x=2″
    When using this method the return value in the URI will return as “&”, and if you are using relative URLs in your application navigation, this will invalidate the DOM generated XML in most browsers and stop page load in Google Chrome (Safari).
    Result: href=”/mypage.php?i=1&x=2″

    Returns – EntityRef: expecting ‘;’

  11. To fix the above the first example href=”?i=1&x=2″ should read with &
    like so
    href=”?i=1&x=2″

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!