<?

/*

.htaccess content:
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/$
    RewriteCond %{REQUEST_FILENAME} !^.*index\.php$
    RewriteRule ^(.*)$ http://qr.nizarium.com/?$1 [L,R=301]

This rule will redirect any http://qr.nizarium.com/something to http://qr.nizarium.com/?something
But warning! Apache (and possibly other HTTP servers) will trim slashes:
    http://qr.nizarium.com/http://somewhere.net/
will be redirected to
    http://qr.nizarium.com/?http:/somewhere.net/
and URL will be broken


UPD 11.10.2012:
Now .htaccess contains only this:
    RewriteEngine on
    RewriteRule ^(.*)$ index.php [QSA,L] 

But you can change matrix point size:
    http://qr.nizarium.com/5?query
    http://qr.nizarium.com/3?query
Smoothing will work starting 3.

Redirection from 
    http://qr.nizarium.com/http://somewhere.net/
to
    http://qr.nizarium.com/?http:/somewhere.net/
is working now.

*/

// Request URI filter
$request $_SERVER['REQUEST_URI'];
$request ltrim(rtrim($request" \t\n\r\0\x0B/?"), "/");
$request explode('?'$request2);
$request $request[0];

// Some special requests
if ($request == 'favicon.ico' || $request == 'robots.txt' || $request == 'sitemap.xml')
{
    die();
}

// Source code page
if ($request == '_source')
{
    
highlight_file('index.real.php');
    die();
}

$query urldecode($_SERVER['QUERY_STRING']);
if (
strlen($query) == 0)
{
    die(
file_get_contents('index.tpl'));
}

// Some parameters (medium error correction level, 5x5 pixels per point)
$errorCorrectionLevel 'M';
$matrixPointSize 5;

// If request starts from number, change matrix point size
if ($request != '' && strcmp((int)$requesttrim($request)) == 0)
    
$matrixPointSize min(100max(1, (int)$request));

// Include qrlib
include("qrlib.php");

header('Content-type: image/png');
QRcode::png($query$cached$errorCorrectionLevel$matrixPointSize2);

?>