Misusing The URLENCODE/DECODE() Functions
am 23.09.2009 00:00:25 von Nitsan Bin-Nun--0016364d29d1fba27c047431baec
Content-Type: text/plain; charset=ISO-8859-1
Hi List
I usually don't tend to post here but I have no time and no idea :(
I'm using .htaccess and a php router file (based upon regex patterns) in
order to create google-friendly URL's
It works like a charm, but somehow it has decoding '+' signs and similar
things into the appropriate character
For instance, I'm trying to reach this page:
A%252bk/ASTROBEAM_S130.html
It's being parsed by the following regex pattern:
'bulb/(.+/.+)\.html' => 'index.php?a=lamp_by_model&model=$1',
The loaded page PHP content is:
list($make, $model) = parse_model_slug($_GET['model']);
The parse_model_slug() function:
function parse_model_slug($slug)
{
$r = explode("/", $slug);
$r[0] = str_replace("_", " ", $r[0]);
$r[1] = str_replace("_", " ", $r[1]);
var_dump($r);
die;
return array('make' => $r[0], 'model' => $r[1]);
}
The current output is:
A%252bk/ASTROBEAM_S130
array(2) {
[0]=>
string(7) "A%252bk"
[1]=>
string(14) "ASTROBEAM S130"
}
Then whenever I add urldecode() to the function:
function parse_model_slug($slug)
{
$r = explode("/", $slug);
$r[0] = str_replace("_", " ", urldecode($r[0]));
$r[1] = str_replace("_", " ", urldecode($r[1]));
var_dump($r);
die;
return array('make' => $r[0], 'model' => $r[1]);
}
A%252bk/ASTROBEAM_S130array(2) {
[0]=>
string(5) "A%2bk"
[1]=>
string(14) "ASTROBEAM S130"
}
I have no idea how to parse this string right.
Any help would be highly appreciated!!
--
Nitsan
--0016364d29d1fba27c047431baec--