Problème avec function ereg et preg_match

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec function ereg et preg_match

Re: Problème avec function ereg et preg_match

par zeus » 19 févr. 2010, 12:23

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.

Re: Problème avec function ereg et preg_match

par zeus » 19 févr. 2010, 11:57

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

Problème avec function ereg et preg_match

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

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