Ik probeer de volgende URL: http://www.site.com?q=producten/groenten/winter/ te verwerken in een array met de volgende code:
Ik verwacht als output (print_r($_GET)):
Maar ik krijg:
Met andere woorden: de laatste slash in de URL zorgt ervoor dat pad[3] aangemaakt wordt. Als de URL http://www.site.com?q=producten/groenten/winter is (zonder laatste slash), wordt het wel goed verwerkt. Ik heb al geprobeerd om eerst die laatste slash eraf te trimmen, maar doe het waarschijnlijk niet goed. Wie kan mij helpen?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| /** * Splits $_GET['q'] en vul $_GET aan met de logische delen van q */ if (isset($_GET['q'])) { $q = explode('$', $_GET['q']); $qs = explode('/', $q[0]); $_GET['arg'] = Array(); $_GET['pad'] = Array(); if (is_numeric($qs[0])) { for ($i = 1; $i < count($qs); $i++) $_GET['arg'][] = $qs[$i]; $_GET['pad'][] = $url[0]; } else { for ($i = 0; $i < count($qs); $i++) { if (is_numeric($qs[$i])) $_GET['arg'][] = $qs[$i]; else $_GET['pad'][] = $qs[$i]; } } if (isset($q[1])) { $_GET['ext'] = explode(':', $q[1]); } if (isset($_GET['pad'])) $_GET['full_pad'] = rtrim(implode('/', $_GET['pad']), '/'); if (isset($_GET['arg'])) $_GET['full_arg'] = implode('/', $_GET['arg']); if (isset($_GET['eext'])) $_GET['full_ext'] = implode(':', $_GET['ext']); } |
Ik verwacht als output (print_r($_GET)):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Array ( [q] => producten/groenten/winter/ [arg] => Array ( ) [pad] => Array ( [0] => producten [1] => groenten [2] => winter ) [full_pad] => producten/groenten/winter [full_arg] => ) |
Maar ik krijg:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Array ( [q] => producten/groenten/winter/ [arg] => Array ( ) [pad] => Array ( [0] => producten [1] => groenten [2] => winter [3] => ) [full_pad] => producten/groenten/winter [full_arg] => ) |
Met andere woorden: de laatste slash in de URL zorgt ervoor dat pad[3] aangemaakt wordt. Als de URL http://www.site.com?q=producten/groenten/winter is (zonder laatste slash), wordt het wel goed verwerkt. Ik heb al geprobeerd om eerst die laatste slash eraf te trimmen, maar doe het waarschijnlijk niet goed. Wie kan mij helpen?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."