Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/06/2011, 14h51   #1
Membre habitué
 
Avatar de Milyshyn76
 
Inscription : novembre 2007
Messages : 363
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : novembre 2007
Messages : 363
Points : 101
Points : 101
Envoyer un message via MSN à Milyshyn76 Envoyer un message via Yahoo à Milyshyn76
Par défaut Problème fonction preg_match()

Bonjour à tous,

Je tiens à préciser avant tout que je suis novice dans ce langage.

Je souhaiterai tester le format d'un champs, si celui si correspond au format date MysSql yyyy-mm-dd, alors j’exécute du code, sinon je ne fais rien.

Voici mon code :

Code :
1
2
3
4
5
6
7
8
if(preg_match('/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/',$data[$tbl_LibelleColonne[$i]])) 
					{
					$str_Champs = MiseEnForme_Date($data[$tbl_LibelleColonne[$i]], 2);
					}
					else
					{
					$str_Champs = $data[$tbl_LibelleColonne[$i]];
					}
Il me retourne comme erreur :

Warning: preg_match() [function.preg-match]: Unknown modifier '.' in /homez.221/partenart/www/ApplisW3b/Fonctions/fct_Presentation.php on line 35

Je n'ai pas réussi à résoudre, quelqu'un a t-il une solution ?

Merci à tous ....
__________________
Mon TWITTER : Emy___==> Qui m'aime me suive sur TWITTER
Milyshyn76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 14h59   #2
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
Salut pour vérifier une date au format : YYYY-MM-DD tu peux faire comme cela :

Code :
1
2
3
4
5
6
7
 
if(preg_match("/^(19|20)\d\d[- \/\.](0[1-9]|1[012])[- \/\.](0[1-9]|[12][0-9]|3[01])$/", $date))
{
    // la date est correcte
} else {
  // la date est incorrecte
}
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 15h00   #3
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Je pense que le problème vient du fait que tu utilises des / dans ton expression régulière alors que ce caractère est utiliser comme délimiteur.

Tu peux essayer ceci
Code :
preg_match('#^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$#',$data[$tbl_LibelleColonne[$i]])
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 15h14   #4
Membre habitué
 
Avatar de Milyshyn76
 
Inscription : novembre 2007
Messages : 363
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : novembre 2007
Messages : 363
Points : 101
Points : 101
Envoyer un message via MSN à Milyshyn76 Envoyer un message via Yahoo à Milyshyn76
A Nesmontou et Gats, Bravo et Bravo, les deux fonctionnent ! merci pour votre réactivité c'est génial (Surtout que j'suis au boulot) !

Voici ton code Gats:
$str_Syntaxe = '';
Code :
1
2
3
4
5
6
7
8
if(preg_match("/^\d{4}-\d{2}-\d{2}$/",$data[$tbl_LibelleColonne[$i]])) 
					{
					$str_Champs = MiseEnForme_Date($data[$tbl_LibelleColonne[$i]], 1);
					}
					else
					{
					$str_Champs = $data[$tbl_LibelleColonne[$i]];
					}
Et le tiens Nesmontou :
Code :
1
2
3
4
5
6
7
8
if(preg_match('#^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$#',$data[$tbl_LibelleColonne[$i]])) 
					{
					$str_Champs = MiseEnForme_Date($data[$tbl_LibelleColonne[$i]], 1);
					}
					else
					{
					$str_Champs = $data[$tbl_LibelleColonne[$i]];
					}
Voilà, merci beaucoup c'est cool !
__________________
Mon TWITTER : Emy___==> Qui m'aime me suive sur TWITTER
Milyshyn76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h17.


 
 
 
 
Partenaires

Hébergement Web