Route's niet goed werkend met regex
Hoi,
Heb een probleem met een van m'n routes. Specifiek over een regex, waar ik niet zo goed in ben...
Het probleem is het volgende, ik voeg een route toe /home, maar bijvoorbeeld /homefkdofdofkdo leid dan weer naar /home omdat dat zo staat in de regex...
Groot probleem dan bijvoorbeeld als ik een route toevoeg '/', alles met een '/' erin leid dus dan naar '/' waardoor ik bijvoorbeeld niet routes kan toevoegen als '/home'
Kan iemand mij helpen met deze regex?
Relevante code:
Heb een probleem met een van m'n routes. Specifiek over een regex, waar ik niet zo goed in ben...
Het probleem is het volgende, ik voeg een route toe /home, maar bijvoorbeeld /homefkdofdofkdo leid dan weer naar /home omdat dat zo staat in de regex...
Groot probleem dan bijvoorbeeld als ik een route toevoeg '/', alles met een '/' erin leid dus dan naar '/' waardoor ik bijvoorbeeld niet routes kan toevoegen als '/home'
Kan iemand mij helpen met deze regex?
Relevante code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
public function setPattern($pattern)
{
$this->_pattern = $pattern;
$this->_regex = preg_replace('#:([a-z])+#', '(?P<$1>[^/]+)', $pattern);
}
public function match($uri)
{
if (!preg_match('#' . $this->_regex . '#', $uri, $matches))
{
return false;
}
else
{
return $matches;
}
}
?>
public function setPattern($pattern)
{
$this->_pattern = $pattern;
$this->_regex = preg_replace('#:([a-z])+#', '(?P<$1>[^/]+)', $pattern);
}
public function match($uri)
{
if (!preg_match('#' . $this->_regex . '#', $uri, $matches))
{
return false;
}
else
{
return $matches;
}
}
?>
Gewijzigd op 28/11/2012 16:32:32 door - Raoul -
Ik heb nu toch nog een probleem met de regexing. Als ik een route toevoeg '/post/:id' dan returnt $matches dit:
Code is nog steeds hetzelfde, maar dan met de $ toegevoegd in de regex op lijn 10.
Die 'd' moet obviously 'id' worden... iemand die mij kan helpen?
Raoul
Code is nog steeds hetzelfde, maar dan met de $ toegevoegd in de regex op lijn 10.
Die 'd' moet obviously 'id' worden... iemand die mij kan helpen?
Raoul
Waarom gebruik je de regex route en niet de standaard route? Daarin kun je ook met (optionele) parameters werken? Of heeft het niets met Zend Framework te maken?