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
    Facebook Open Graph META Tags

    It's no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook "Like" and "Recommend" widgets on every website.  One...

  • By
    9 Mind-Blowing Canvas Demos

    The <canvas> element has been a revelation for the visual experts among our ranks.  Canvas provides the means for incredible and efficient animations with the added bonus of no Flash; these developers can flash their awesome JavaScript skills instead.  Here are nine unbelievable canvas demos that...

Incredible Demos

  • By
    QuickBoxes for Dojo

    Adding to my mental portfolio is important to me. First came MooTools, then jQuery, and now Dojo. I speak often with Peter Higgins of Dojo fame and decided it was time to step into his world. I chose a simple but useful plugin...

  • 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...

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 &amp;
    like so
    href=”?i=1&amp;x=2″

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