Accueil > Forum > > > > pb d'expression régulière
pb d'expression régulière
mardi 18 mars 2008 à 16:31:53 |
pb d'expression régulière

ludovicanceaux
|
Salut à tous, j'ai créé une boite mail sur mon serveur pour que les membres puissent dialoguer entre eux, poser des questions etc...., (tout ca, mais ss s'échanger ni leur numéro de téléphone, ni leur adresse mail, ni des insultes etc...) il faut que ca reste ds la charte du site, seulement j'ai un problème je comprend que dalle aux expressions régulières (j'ai regardé des tuto, mais c'est compliqué, les "&" et aussi "$" etc..., j'ai déjà fait ca: $message='<html><head></head><body>'; $message.='Un membre a posté un message à votre attention sur <a href="http://www.galarea.com">http://www.galarea.com</a>, vous pouvez aller le voir dès maintenant</body></html>';
if(ereg("([0-9])",$message)){ echo 'true'; }else{ echo 'false'; }
donc là ca marche pour les chiffres, mais sitot que je passe à des mots ou des lettre style "@", je n'y arrive plus!!!!
Merci d'avance
|
|
mardi 18 mars 2008 à 16:41:06 |
Re : pb d'expression régulière

ludovicanceaux
|
je viens de trouver un truc.
if(eregi("([0-9]|@|www|message)",$message)){ echo 'true'; }else{ echo 'false'; }
est ce que ce système là est assez fiable???
|
|
mardi 18 mars 2008 à 18:04:34 |
Re : pb d'expression régulière

neigedhiver
|
Salut,
Qu'est-ce que tu souhaites faire exactement ? Parce qu'avec les PCRE (à utiliser plutôt que les regex posix ereg, eregi, etc) tu peux faire à peu près n'importe quoi...
Les Expressions Régulières, au début, j'avais aussi beaucoup de mal... Mais à force de persévérance, j'ai commencé à faire des trucs... Pis maintenant j'adore ça (j'en mettrais pas partout pour autant quand même). Donc essaie de mieux expliquer ton problème, ce que tu veux faire précisément, et on verra la solution à mettre en oeuvre...
Neige
|
|
mardi 18 mars 2008 à 18:25:00 |
Re : pb d'expression régulière

ludovicanceaux
|
lol, bah en fait les membres peuvent dialoguer entre eux sur le site, via une boite mail stocké en sql que j'ai faite (un peu comme ebay), mais ce que je voudrais c'est garder le control des messages et quand il detecte des mots clefs (ex: @, un numéro de téléphone, message, adresse, etc...) il m'enregistre dans ma bdd à la colonne activate : false au lieu de true, ca veux dire qu'il désactive le message, tant que je l'ai pas lu et réactivé moi même... En fait c'est un site de vente d'objet d'art, et il ne faudrait pas que les membres finalisent leur transactions en dehors du site.
merci
|
|
mardi 18 mars 2008 à 18:25:20 |
Re : pb d'expression régulière
|
mardi 18 mars 2008 à 18:41:44 |
Re : pb d'expression régulière

neigedhiver
|
C'est vrai que c'est pas le plus simple... Pour m'être penché à une époque sur cette question (exactement la même) j'en étais personnellement arrivé à la conclusion que le système ebay est le plus facile à mettre en place : les membres paient dès la mise en vente d'un objet, quel que soit le résultat de la vente (c'est entre autres ce qui a lancé la mode des enchères à 1€). Le fait aussi que les messages soient publics incite les gens à ne pas y laisser trainer leurs coordonnées personnelles.
Bref. Pour revenir à ton problème...
ereg est moins performant que preg_match. C'est un fait testé, avéré et éprouvé, et même énoncé dans la doc de php.
Concernant le motif à utiliser... Celui que tu as n'est pas mauvais. Simplement, trop de tests OU (motif1|motif2|motif3) va tuer les performances. Donc en mettre un peu oui, mais pas uniquement de ça (genre pas pour 15 ou 20 motifs à trouver).
Avec preg_match, ton motif donnerait ça :
if (preg_match('`([0-9]|@|www|message)`i', $message)) { echo 'true'; } else { echo 'false'; }
J'y pense : ton système ne sera pas infaillible... Il suffit d'écrire une adresse email comme ça : nom point prenom at domaine point tld pour que tu ne puisse pas la détecter... Et si tu commences à t'amuser à chercher les noms de domaines dans le texte (gmail.com, hotmail.fr, neuf.fr, free.fr, etc) tu vas anéantir ton serveur. Si tu cherches les chiffres, tu vas te taper tous les messages où transitent des cotes, des dimensions, des départements, ...
Quitte à filtrer les messages, tu ferais mieux de tous les valider à la main... Ouais, ça fait beaucoup... Ou alors, tu forces à ce qu'ils soient publics. Je sais, c'est pas la solution à ta question, mais j'essaie aussi de rationnaliser ton affaire ;)
Neige
|
|
mardi 18 mars 2008 à 21:38:33 |
Re : pb d'expression régulière

ludovicanceaux
|
mais je pense que tu as raison, ca va tuer les performances si je vérifie 20 messages par 20 messages, mais si je vérifie 1 message par 1 message, au moment de l'envoie par exemple, ca ne doit pas utiliser trop de ressources??? en fait je créer une bdd avec 5 colonnes "id / from / to/ lu / activation" et en fait je fais la vérification au moment ou le membre envoie le message, et dc ca enregistre false ou true ds la colonne activation, en fait je sais que ce n'est pas infailllible, mais ca me permet de faire une préselection, après rien ne m'empèche par la suite de regarder d'autre message comme code source doit dailleurs le faire, au moment ou il désactive des sources, ou des questions dans le forum, enfin j'ai besoin de ton avis!!!!
|
|
mardi 18 mars 2008 à 23:49:32 |
Re : pb d'expression régulière

neigedhiver
|
Je parlais pas de 20 messages par 20 messages, mais de 20 tests de type OU exclusif dans ton expression régulière, qui correspondent au masque (mot1|mot2) ou le pipe | sert de sélecteur.
Si tu fais ça pour quelques mots, comme ceux que tu as énoncés, a priori, ça me choque pas : la vérif se fera uniquement quand un membre enverra un message à un autre, pas à chaque chargement de page. Donc de ce côté là, c'est pas la mort. Mais si tu rajoutes des mots à filtrer, que t'en as 20, parce qu'avec le temps tu te rends compte qu'il y a plus d'expressions auxquelles faire attention (mail, tél, téléphone, appelle-moi, numero, adresse, ecris-moi, call, at, point com, point fr, etc) là, ça va commencer à être méchant.
Ma conclusion, c'est que soit t'as un système de filtre imparfait que tu ne pourras améliorer que dans une certaine limite et au détriment des performances, soit tu modères a priori (tous les messages doivent être validés), soit tu changes de système... Le filtre, c'est super tentant, je le reconnais... Seulement, si tu veux avoir un truc super mortel dugne d'un moteur de recherche comme google, il te faudra investir dans plusieurs centaines de machines 10 fois plus performantes que ton super pc tuning overclocké pour les jeux, et il te faudra utiliser non pas un langage comme PHP, mais plutôt du C, plus proche de la machine. Sincèrement, à ta place, j'oublierais le système de filtre... Sauf si tu te fais une raison et que tu sais que tous les messages ne peuvent être filtrés. Donc comme préselection, moui... Mais je ne doute pas une seconde du niveau de vice des internautes qui cherchent à grapiller 20 centimes d'euros par ci, 10 centimes par là... Autant tout modérer a priori.
Après, tu peux te baser sur cette contrainte pour rajouter des services payants : un membre fidèle, bien noté, qui a plusieurs transactions derrière lui, pourrait souscrire un abonnement lui permettant d'échapper à la modération à priori ; ses messages ne seraient pas filtrés (mais pourraient encore être contrôlés).
Tout ça, c'est que mon avis à moi... Je le trouve pertinent, forcément... C'est subjctif. D'autres pourraient certainement y trouver à redire, y'a peut-être même des trucs dont j'ai pas conscience qui peuvent faire exactement ce que tu veux 50000 fois en 0,1 ms.
Peux pas te dire mieux.
Neige
|
|
mercredi 19 mars 2008 à 10:51:10 |
Re : pb d'expression régulière

ludovicanceaux
|
ok, je te remercie de tes explications, je vais peut etre faire comme tu m'as dis, de placer des notes pour les transaction, et je vis filtrer que ceux qui ont une petite note, enfin je vais en parler à mon boss ;-), sinon à part ca j'aimerais bien apprendre tous sur les expressiions régulières, ca me parait interressant, mais un peu compliqué, alors connais tu des bon tuto, évite de me dire manuelphp ou les autres du même style, car je n'ai pas trouvé mon bonheur, même le site du zéro je l'ai lu mais il ne rentre pas ds les détails, merci
|
|
mercredi 19 mars 2008 à 10:56:21 |
Re : pb d'expression régulière
|
Cette discussion est classée dans : message, mail, pb, expression, régulière
Répondre à ce message
Sujets en rapport avec ce message
expression régulière regex [ par fyav ]
j'ai une variable ex: $mavar="coucoule monde%topsalut cherie%%topcomment ça va";et je souhaites enlever tout ce qui est entre "%top" et "%%top"sachant
Probléme avec script mail chez Free [ par SteufDu59 ]
J'ai donc un formulaire avec la possibilité de joindre une image, donc en fichier joint, le script niveau formulaire est :if ($fonctionmail=="oui"){//
PB Expression reguliére [ par krevette ]
Salut tout le mondeJe commence a réalisé des expression réguliére pour la conception d'un forum. (enfin pour le moment je n'ais fais que tester en ut
mailer une page php [ par micholi ]
Bonjour,j'utilise la fonction mail dans une page php pour envoyer un mail. Voici mon script : $to = "email du destinataire" . ", " ;$subject = "Sujet
Pb Fonction Mail... [ par Osmose34 ]
Bonjour à tousJ'ai un ptit problème avec ma fonction Mail, j'ai écris la fonction avec tous les paramètres simples, j'upload la page, je lance la page
mail() et function() [ par arnold002 ]
Bonjour à tous,Je voudrai envoyer un mail (avec la fonction mail() ).Dans le message du mail (stocké dans une variable $message), je veux faire appel
Envoi d' un mail avec des $variable dans le message [ par blibers ]
Slt a tous ;)voila mon pb :je ne trouve pas de solutions pour pouvoir envoyer un message mail avec des variables dans le corp du message !je vous mets
Voila j'ai fais un bouh de code pour envoyer des mail [ par timolerigolo ]
Bonjour,Voila j'ai fais un bouh de code PHP pour envoyer des Mail mé je ne sé pas si le code et bon et comme je ne resoie pas de mail je ne sé pas....
Problème de code dans un formulaire [ par gateau ]
Bonjour,Je suis on ne peut plus novice en PHP, grâce à des tutoriaux j'ai pu créer un formulaire dans une int
mail() => PB [ par funghi ]
Salut à tous !!!mon site se compose uniquemennt d'une anim flash et lorsque j'appelle la fonction mail(), une nouvelle fenetre s'ouvre ... Je peux la
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|