Page 1 sur 1

Problème avec function ereg et preg_match

Posté : 19 févr. 2010, 11:18
par jultor
Bonjour,

Voilà, dans un de mes fichier une fonction "ereg" était "depracated".
     if (ereg($code,$format) && defined($infos['const'].'_'.strftime($infos['ftime'], $timestamp)))
Je l'a change donc avec "preg_match".
La ligne me donne donc :
     if (preg_match($code,$format) && defined($infos['const'].'_'.strftime($infos['ftime'], $timestamp)))
Maintenant un message d'erreur apparait dans mon admin :

Code : Tout sélectionner

Warning: preg_match() [function.preg-match]: No ending delimiter '%' found in C:\wamp\www\osCSS_1.2.2_RC\admin\includes\functions\general.php on line 1525
Je suis un grand débutant et je voudrais que quelqu'un puisse m'aider si il toruve la solution pour ce "Warning".
Que faut-il ajouter de plus à cette ligne ?

Merci d'avance

Re: Problème avec function ereg et preg_match

Posté : 19 févr. 2010, 11:57
par zeus
preg_match() utilise la syntaxe PCRE, qui dit, entre autre, que les patterns doivent être délimités. Cela signifie que, dans le pattern, tu indiques le début et la fin du pattern avec un caractère quelconque (usuellement, on utilise le slash "\", mais je préfère le dièse "#")

Exemple :
avec ererg (PECL), pour capturer une chaine complète, tu utilisais le pattern suivant :
ereg('(.*)', $subject)
avec preg_match (PCRE), pour la même capture, tu dois rajouter le délimiteur avant et après
preg_match('#(.*)#', $subject)
En quelques mots, pour t'expliquer pourquoi, c'est parce que la syntaxe PCRE permet d'utiliser toute une série de flag qui permettent de rendre tes expressions régulières beaucoup plus puissantes.
Mais si tu veux en savoir plus, je te redirige sur l'excellent site d'un ViPHP : http://www.lumadis.be/regex/index.php
Et plus particulièrement son tutoriel sur les expressions régulières PCRE : http://www.lumadis.be/regex/tuto_pcre.php

Re: Problème avec function ereg et preg_match

Posté : 19 févr. 2010, 12:23
par zeus
Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.

Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.