Erreur PHP : preg_match() Compilation failed, missing )
Résolu/Fermé
blaz32
Messages postés
155
Date d'inscription
jeudi 27 juin 2013
Statut
Membre
Dernière intervention
28 août 2014
-
11 janv. 2014 à 15:54
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 - 11 janv. 2014 à 17:21
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 - 11 janv. 2014 à 17:21
A voir également:
- Erreur PHP : preg_match() Compilation failed, missing )
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur g030 - Forum Bbox Bouygues
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
3 réponses
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
143
11 janv. 2014 à 16:18
11 janv. 2014 à 16:18
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 ?
blaz32
Messages postés
155
Date d'inscription
jeudi 27 juin 2013
Statut
Membre
Dernière intervention
28 août 2014
10
Modifié par blaz32 le 11/01/2014 à 16:47
Modifié par blaz32 le 11/01/2014 à 16:47
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...
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
143
11 janv. 2014 à 16:56
11 janv. 2014 à 16:56
Dans ce cas, il faudrait vérifier ce que tu as dans $v['redirreg'], ton expression régulière semble erronée.
Pourrais-tu print ce qu'il y a dedans et vérifier que c'est bien ce que tu attends ?
Pourrais-tu print ce qu'il y a dedans et vérifier que c'est bien ce que tu attends ?
blaz32
Messages postés
155
Date d'inscription
jeudi 27 juin 2013
Statut
Membre
Dernière intervention
28 août 2014
10
Modifié par blaz32 le 11/01/2014 à 17:20
Modifié par blaz32 le 11/01/2014 à 17:20
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 !
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
143
11 janv. 2014 à 17:21
11 janv. 2014 à 17:21
Parfait ! Au plaisir ;)