Route's niet goed werkend met regex
- Raoul -
28/11/2012 16:32:02Hoi,
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 -
PHP hulp
07/01/2025 04:14:59Wouter J
28/11/2012 16:57:51- Raoul -
28/11/2012 17:10:32- Raoul -
05/12/2012 14:34:00Ik 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
kees Schepers
05/12/2012 16:02:41Waarom 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?