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 :

Suppression de caractère invisible


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Suppression de caractère invisible
    Bonjour,

    J'ai un caractère invisible que je n'arrive pas à supprimer.

    Je fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client['client_nom'] = trim($client['client_nom']);
    Mais le caractère est toujours présent.

    Lors d'un "echo", le caractère est bien invisible.

    A quoi cela est-il du.

    Merci d'avance
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Excuse-moi mais de quel type de caractère 'invisible' parles-tu ?
    Un de ceux-là :
    • " " (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.

    Sinon, comment fais-tu pour 'voir' qu'il y a bien un caractère invisible ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Bonjour et merci,

    Lorsque je vais dans phpmyadmin et que je vais en modification sur un enregistrement et que je positionne mon curseur sur la fin d'un nom, mon curseur ne se positionne pas juste après le dernier caractère du nom, mais plus lion.

    Lorsque j'exporte ma base dans excel, j'ai après le nom un "A" majuscule avec "^" dessus qui suit directement le nom.

    Lorsque je vais dans ma case excel, j'ai donc mon nom suivi de la lettre A avec l'accent et encore un espace.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    pour savoir de quel carcatère il s'agit, tu peux utiliser ord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // affiche le code ASCII du dernier caractère de $client['client_nom']
    echo ord(substr($client['client_nom'], -1));
    Ensuite, on pourra voir comment s'en débarrasser

  5. #5
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Merci Eusebe,

    Voici ce que me donne sur quelques enregistrements le contenu du dernier caractère de client_nom
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    160
    160
    160
    160
    160
    160
    160
    68
    160
    85
    76
    78
    78
    160
    160
    160
    88
    160
    160
    160
    83
    160
    160
    89
    160
    160
    160
    85
    85
    160
    160
    160
    160
    69
    160
    160
    160
    160
    160
    ...
    Sachant que 160 est espace pourquoi trim ne fonctionne pas
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  6. #6
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Je viens de le refaire en prenant les 2 derniers caractères présenté ci-après avec -1 et -2

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 68
    -2 :82
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 85
    -2 :79
    Autre nom client
    -1 : 76
    -2 :69
    Autre nom client
    -1 : 78
    -2 :73
    Autre nom client
    -1 : 78
    -2 :73
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 88
    -2 :73
    Autre nom client
    -1 : 160
    -2 :194
    Autre nom client
    -1 : 160
    -2 :194
    194 c'est aussi espace ?
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  7. #7
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    L'espace c'est 32 (20 en héxa) pour l'ASCII, m'est avis que ton texte est en UNICODE.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  8. #8
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Si on se réfère à la doc de la fonction trim, on voit bien que l'espace insécable ayant pour code ASCII 160 ne fait pas partie des caractères supprimés par la fonction.

  9. #9
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    j'ai donc fait une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function chgASCII($chaine)
    {
    	if(ord(substr($chaine, -1))== 160) $chaine = substr($chaine, 0, -1);
    	if(ord(substr($chaine, -1)) == 194) $chaine = substr($chaine, 0, -1);
    	return $chaine;
    }
    Je l'ai appliqué sur mes champs de la table client et tout est rentré dans l'ordre.

    Merci à tous
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  10. #10
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Tu pouvais plus simplement passer par la charlist de trim.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  11. #11
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Oui bien sur, mais je ne voyais pas quelle valeur mettre dans la charlist.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. suppression d'un caractère invisible
    Par fontol dans le forum AIX
    Réponses: 4
    Dernier message: 26/02/2015, 22h36
  2. Suppression de caractères dans un fichier
    Par kimlee dans le forum Administration système
    Réponses: 2
    Dernier message: 12/10/2006, 09h42
  3. Réponses: 4
    Dernier message: 10/10/2006, 10h14
  4. Suppression de caractères spéciaux
    Par nellynew dans le forum Access
    Réponses: 3
    Dernier message: 18/09/2006, 10h14
  5. Suppression de caractères
    Par Galaad dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/08/2006, 11h54

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