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 :

equivalente à trim() n 'enlevant l'espace


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut equivalente à trim() n 'enlevant l'espace
    Bonjour

    Quelqu'un peut me donner un fonction equivalente a trim() mais qui n'enleve pas l'espace.

    trim ( string str , string charlist )

    trim retourne la chaîne str , après avoir supprimé les caractères invisibles en début et fin de chaîne. Si le second paramètre charlist a été omis, trim supprimera les caractères suivants :

    * " " ( ASCII 32 ( 0x20 )), un espace ordinaire.
    * "\t" ( ASCII 9 ( 0x09 )), une tabulation.
    * "\n" ( ASCII 10 ( 0x0A )), une nouvelle ligne (line feed).
    * "\r" ( ASCII 13 ( 0x0D )), un retour chariot (carriage return).
    * "\0" ( ASCII 0 ( 0x00 )), le caractère NUL .
    * "\x0B" ( ASCII 11 ( 0x0B )), une tabulation verticale.

  2. #2
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut Re: recherche fonction equivalente à trim() n 'enlevant l'es
    Citation Envoyé par carmen256
    Bonjour

    Quelqu'un peut me donner un fonction equivalente a trim() mais qui n'enleve pas l'espace.

    trim ( string str , string charlist )

    trim retourne la chaîne str , après avoir supprimé les caractères invisibles en début et fin de chaîne. Si le second paramètre charlist a été omis, trim supprimera les caractères suivants :

    * " " ( ASCII 32 ( 0x20 )), un espace ordinaire.
    * "\t" ( ASCII 9 ( 0x09 )), une tabulation.
    * "\n" ( ASCII 10 ( 0x0A )), une nouvelle ligne (line feed).
    * "\r" ( ASCII 1\03 ( 0x0D )), un retour chariot (carriage return).
    * "\0" ( ASCII 0 ( 0x00 )), le caractère NUL .
    * "\x0B" ( ASCII 11 ( 0x0B )), une tabulation verticale.
    peut etre :

    $str=str_replace(array('\t','\n','\r','\0','\x0B'),'',$str);

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut reponse
    c'est peut etre la solution mais je voie pas comment l utiliser avec le code ci dessus

    auras tu une idée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $nom = $_POST['nom'];
    if ((strlen(trim($nom)) < 1) || preg_match('`[^a-z]`i', $nom)) {
        echo "le nom contient un caractère interdit ou est vide<br>";
    } 
    elseif ((strlen($trim($nom)) >= 26) || preg_match('`[^a-z]`i', $nom)) {
        echo "il y a trop de caratere dans le champ nom<br>";
    } else {
        echo "tout est ok<br>";
    }
    ?>
    si je met deux nom ca ne marche pas
    jean claude etc... L'espace entre jean et claude pose probleme et induit une erreur."le nom contient un caractère interdit ou est vide"

  4. #4
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut Re: reponse
    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
    16
    17
     
    <?php
    function mytrim($str)
    {
       return str_replace(array('\t','\n','\r','\0','\x0B'),'',$str);
    }
     
    $nom = $_POST['nom'];
    if ((strlen(mytrim($nom)) < 1) || preg_match('`[^a-z]`i', $nom)) {
        echo "le nom contient un caractère interdit ou est vide<br>";
    } 
    elseif ((strlen(mytrim($nom)) >= 26) || preg_match('`[^a-z]`i', $nom)) {
        echo "il y a trop de caratere dans le champ nom<br>";
    } else {
        echo "tout est ok<br>";
    }
    ?>

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    j'ai tenté en faisant cela c'est pariel.

    Cyril -> ok "tout es bon"
    Marie Laure -> message d'erreur "il y a trop de caratere dans le champ nom<br>"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $nom = $_POST['nom'];
    $str=str_replace(array('\t','\n','\r','\0','\x0B'),'',$nom);
    if ((strlen($str) < 1) || preg_match('`[^a-z]`i', $nom)) {
        echo "le nom contient un caractère interdit ou est vide<br>";
    } 
    elseif ((strlen($str) >= 26) || preg_match('`[^a-z]`i', $nom)) {
        echo "il y a trop de caratere dans le champ nom<br>";
    } else {
        echo "tout est ok<br>";
    }
    ?>
    Comment faire pour un verification du champ contenant deux mots avec un espace ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    ok chaced je tente pour voir

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut reponse
    Marche pas avec deux nom j ai encore ce message :
    Marie Laure
    "il y a trop de caratere dans le champ nom<br>"
    L'espace le gène entre marie et Laure.
    Marie seul c'est bon

  8. #8
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut Re: reponse
    Citation Envoyé par carmen256
    Marche pas avec deux nom j ai encore ce message :
    Marie Laure
    "il y a trop de caratere dans le champ nom<br>"
    L'espace le gène entre marie et Laure.
    Marie seul c'est bon
    normalement un strlen(trim(rtrim('Marie Laure'))) doit renvoyer 11 de toute façon...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    La je ne vois pas comment faire pour que la vérification accepte les espaces entre deux mots. La fonction trim est bien mais comment faire annuler la suppression des espaces je ne sais pas!!!

  10. #10
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par carmen256
    La je ne vois pas comment faire pour que la vérification accepte les espaces entre deux mots. La fonction trim est bien mais comment faire annuler la suppression des espaces je ne sais pas!!!
    Pourquoi veux tu ne pas annuler les espaces ? c'est merdique un espace au debut ou apres un nom quand meme...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    si j annule les espaces il se passe ceci:

    inscription(Nom : Marie Laure) --> enregistre dans la base MarieLAURE. ok
    lors d'une selection pour afficher sa fiche inscrit. Marie Laure s'affichera sans espace entre les deux : MarieLaure. ca c'est pas bon.

    Peut etre que je m y prends mal pour la verification.

  12. #12
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut Re: rep
    Citation Envoyé par carmen256
    si j annule les espaces il se passe ceci:

    inscription(Nom : Marie Laure) --> enregistre dans la base MarieLAURE. ok
    lors d'une selection pour afficher sa fiche inscrit. Marie Laure s'affichera sans espace entre les deux : MarieLaure. ca c'est pas bon.

    Peut etre que je m y prends mal pour la verification.
    Trim et Rtrim n'enleve pas les espaces du milieu pourtant...

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    ce que je veux faire c'est verifier si le champ contient bien des lettres et que le nombre de lettres soit inferieur ou egal a 26.

    Pour un nom seul ca marche, mais pour deux non

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    ce que je ne comprends pas c'est que :

    pour un mot ca marche mais pour deux dans le champ non cela ne fonctione pas. La c'est le mystere

  15. #15
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Et un truc comme ça ?

    $nom=trim(rtrim($chaine=preg_replace('/\s\s+/', ' ', $nom)));
    if(strlen($nom)<27 && strlen($nom)>1)
    {
    echo 'ok';
    }

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    Nom ca marche pas la non plus

    Maire Laure --> toujours meme erreur.
    Marie (seule) --> bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    $nom = $_POST['nom'];
    $nom=trim(rtrim($chaine=preg_replace('/\s\s+/', ' ', $nom)));
    if ((strlen(($nom) < 1) < 25) || preg_match('`[^a-z]`i', $nom)) {
        echo "le nom contient un caractère interdit ou est vide";
    } else {
        echo "tout est ok";
    }
    ?>

  17. #17
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par carmen256
    Nom ca marche pas la non plus

    Maire Laure --> toujours meme erreur.
    Marie (seule) --> bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    $nom = $_POST['nom'];
    $nom=trim(rtrim($chaine=preg_replace('/\s\s+/', ' ', $nom)));
    if ((strlen(($nom) < 1) < 25) || preg_match('`[^a-z]`i', $nom)) {
        echo "le nom contient un caractère interdit ou est vide";
    } else {
        echo "tout est ok";
    }
    ?>
    [/code]
    Ce n'est pas un probleme lors de l'ajout en base ton truc ?

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    non c'est pas cela

    La je craque à font c'est incroyable quand même la verification fonctionne pour un mot dans le champ nom mais pas pour deux. C'est fou quand même. Et tant que la vérifcation est pas bonne l 'enregistrement ne se fait pas c'est normal.

    Je voulais faire une verification simple d'un champ : que de l'alphabet et un nombre de lettre max defini. La verification fonctionne pour un mot seul mais pour deux mot non. La c'est le mystere.

  19. #19
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 234
    Points : 8 497
    Points
    8 497
    Billets dans le blog
    17
    Par défaut
    Peux-tu nous résumer ce que tu veux faire exactement ? Et en nous donnant des exemples concrets stp.

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut reponse
    Je voudrai

    Vérifier si un champ contient que de l'alphabet et le nombre de caractere afin de la poster si c'est bon

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/10/2005, 14h38
  2. Enlever les espaces redondants....
    Par BFH dans le forum C
    Réponses: 3
    Dernier message: 24/10/2005, 18h00
  3. enlever les espaces
    Par moimoi_1 dans le forum Langage
    Réponses: 3
    Dernier message: 09/08/2005, 09h57
  4. Enlever les espaces inutiles d'un AnsiString
    Par jamesb dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/01/2005, 12h40
  5. Enlever les espaces
    Par Claythest dans le forum Langage
    Réponses: 6
    Dernier message: 03/06/2003, 14h43

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