IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

preg_match et textarea


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Points : 123
    Points
    123
    Par défaut preg_match et textarea
    Bonjour,

    Je viens vous voir car un petit casse-tête me casse la tête (fallait s'en douter ^^)

    Alors l'expérience est simple : Je récupère une variable d'un textarea et je cherche à la traiter à l'aide d'une expression régulière basique. Cependant, elle me retourne "FAUX" quand je m'amuse à faire un petit saut de ligne dans le textarea... Je me dis donc que cela vient très très certainement des vilains \n\r, mais après de multiples tentatives, je reste au point mort.

    Voici donc le code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    //********** EST UNE PHRASE **********//
     
    	public static function Phrase($variable){
    		$variable=str_replace('\n', '', $variable);
    		$variable=str_replace('\r', '', $variable);
    		$variable=str_replace('<br />', '', $variable);
    		echo htmlentities($variable);
    		if(!preg_match("/^[0-9A-Za-z\'\_\.\,\-\ \[\]\(\)âêîôûéèçàïäüù]+$/",$variable)){
    			return false;
    		}
    		else{
    			return true;
    		}
    	}
    Pour un texte du style dans le textarea :

    a
    b
    c

    Le echo affichera : a b c et il y aura un retour de false. (les espaces sont p-e une piste)

    Si quelqu'un trouve la solution, je lui serai reconnaissant !

    Cordialement,

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu dois utiliser le modificateur de schéma "m" pour le multiligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static function Phrase($variable){
     
    		if(!preg_match("/^[0-9A-Za-z\'\_\.\,\-\ \[\]\(\)âêîôûéèçàïäüù]+$/m",$variable)){
    			return false;
    		}
    		else{
    			return true;
    		}
    	}
    http://www.php.net/manual/en/referen....modifiers.php

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Points : 123
    Points
    123
    Par défaut
    Après une tentative un peu plus large, toujours un retour faux.

    Le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    	public static function Phrase($variable){
    		$variable=str_replace('\&', '', $variable);
    		$variable=str_replace('\m', '', $variable);
    		$variable=str_replace('\n', '', $variable);
    		$variable=str_replace('\r', '', $variable);
    		$variable=str_replace('<br />', '', $variable);
    		echo htmlentities($variable);
    		if(!preg_match("/^[0-9A-Za-z\'\_\.\,\-\ \[\]\(\)\m\&âêîôûéèçàïäüù]+$/",$variable)){
    			return false;
    		}
    		else{
    			return true;
    		}
    	}

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    je ne vois pas bien le rapport entre ce que je t'ai indiqué et ce que tu as écris : tu n'as pas besoin d'enlever les retours a la ligne, il faut juste activer le multiligne.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Points : 123
    Points
    123
    Par défaut
    Et bien en utilisant le code que tu as placé ci-dessus et en rajoutant le / oublié, le résultat retourne toujours une valeur fausse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static function Phrase($variable){
    		if(!preg_match("/^[0-9A-Za-z\'\_\.\,\-\ \[\]\(\)\&âêîôûéèçàïäüù]+$\m/",$variable)){
    			return false;
    		}
    		else{
    			return true;
    		}
    	}
    Je suis désolé de galérer un peu sur le sujet, mais ce n'est vraiment pas ma tasse de thé.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    et sans changer ce que j'ai mis ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Points : 123
    Points
    123
    Par défaut
    Allez la réponse est d'une débilité profonde ...

    dans le str_replace, il ne faut pas des >simple quote< ou ' (on sait jamais lol). Mais des " ... Un peu bête, mais c'est la triste solution à ce problème sur lequel je bute depuis... une bonne grosse heure ...

    Merci sabotage pour ton temps,

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bon je parle pour rien je vois, ta solution n'est pas la bonne mais si il te fait plaisir ca doit etre l'essentiel.

Discussions similaires

  1. Caratère spécial dans un textArea
    Par sigas dans le forum Composants
    Réponses: 4
    Dernier message: 21/07/2004, 12h18
  2. quoi utilisé ? TextArea ou autre ?
    Par soad dans le forum Composants
    Réponses: 2
    Dernier message: 05/06/2004, 16h19
  3. Réponses: 24
    Dernier message: 18/05/2004, 16h06
  4. rediriger la sortie standard vers un textarea
    Par gromite dans le forum Composants
    Réponses: 9
    Dernier message: 10/05/2004, 11h07
  5. attribution de texte dynamique à un textarea
    Par stephane eyskens dans le forum Flash
    Réponses: 6
    Dernier message: 01/10/2003, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo