Erreur PHP : preg_match() Compilation failed, missing )
Résolu
blaz32
Messages postés
155
Date d'inscription
Statut
Membre
Dernière intervention
-
chico200987 Messages postés 791 Date d'inscription Statut Membre Dernière intervention -
chico200987 Messages postés 791 Date d'inscription Statut Membre Dernière intervention -
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
- J'aime par erreur facebook notification - Forum Facebook
- Expert php pinterest - Télécharger - Langages
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
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 !