Erreur PHP : preg_match() Compilation failed, missing )
Résolu
blaz32
Messages postés
179
Statut
Membre
-
chico200987 Messages postés 856 Statut Membre -
chico200987 Messages postés 856 Statut Membre -
Bonjour, j'ai une erreur de la part de PHP :
Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset 46 in C:\Users\Perso\Documents\wamp\www\site\core\Router.php on line 27
Je ne vois pas ce que signifie cette erreur, j'ai recherché sur php.net, mais je ne trouve pas :(
que peut signifier cette erreur ?
Si je savais à quoi correspond cette erreur, ça pourrait m'aider à chercher le problème dans mon code...
Merci de vos réponses
Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset 46 in C:\Users\Perso\Documents\wamp\www\site\core\Router.php on line 27
Je ne vois pas ce que signifie cette erreur, j'ai recherché sur php.net, mais je ne trouve pas :(
que peut signifier cette erreur ?
Si je savais à quoi correspond cette erreur, ça pourrait m'aider à chercher le problème dans mon code...
Merci de vos réponses
A voir également:
- Erreur PHP : preg_match() Compilation failed, missing )
- Expert php pinterest - Télécharger - Langages
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
3 réponses
Salut,
Pourtant cette erreur est assez explicite, elle indique "missing ) at offset 46 [...] at line 27"
Ligne 27 colonne 46 il semblerait qu'il manque une parenthèse fermante. Mais cela peut-être du à autre chose, quelles sont les lignes 44 jusque 48 ?
Pourtant cette erreur est assez explicite, elle indique "missing ) at offset 46 [...] at line 27"
Ligne 27 colonne 46 il semblerait qu'il manque une parenthèse fermante. Mais cela peut-être du à autre chose, quelles sont les lignes 44 jusque 48 ?
44 à 48, ça fait
donc, voici le code des lignes 20 à 47 :
Merci de votre aide, mais je ne vois pas où il manque une parenthèse...
return true; } /**
donc, voici le code des lignes 20 à 47 :
static function parse($url,$request){
$url = trim($url,'/');
if(empty($url)){
$url = Router::$routes[0]['url'];
}else{
$match = false;
foreach(Router::$routes as $v){
if(!$match && preg_match($v['redirreg'], $url, $match)){
$url = $v['origin'];
foreach($match as $k => $v){
$url = str_replace(':'.$k.':',$v,$url);
}
$match = true;
}
}
}
$params = explode('/',$url);
if(in_array($params[0],array_keys(self::$prefixes))){
$request->prefix = self::$prefixes[$params[0]];
array_shift($params);
}
$request->controller = $params[0];
$request->action = isset($params[1]) ? $params[1] : 'index';
$request->params = array_slice($params,2);
return true;
}
Merci de votre aide, mais je ne vois pas où il manque une parenthèse...
Merci beaucoup !
J'avais mon $v['redirreg'] qui correspondait à mon $r['redirreg']...
c'était ça :
l'erreur venait du
Maintenant que l'expression régulière est correcte, je peux continuer là où j'en étais ^^
Merci beaucoup !
J'avais mon $v['redirreg'] qui correspondait à mon $r['redirreg']...
c'était ça :
$r['redirreg'] = $redir;
$r['redirreg'] = str_replace('/*', '(?P<args>/?.*)', $r['redirreg']);
foreach($r['params'] as $k => $v){
$r['redirreg'] = str_replace(":$k", "(?P<$k>$v", $r['redirreg']);
}
$r['redirreg'] = '/^'.str_replace('/', '\/',$r['redirreg']).'$/';
$r['redir'] = preg_replace('/:([a-z0-9]+)/',':${1}:',$redir);
$r['redir'] = str_replace('/*',':args:',$r['redir']);
self::$routes[] = $r;
l'erreur venait du
$r['redirreg'] = str_replace(":$k", "(?P<$k>$v", $r['redirreg']); car il fallait remplacer le ":$k" par ":$k:"...
Maintenant que l'expression régulière est correcte, je peux continuer là où j'en étais ^^
Merci beaucoup !