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 :

[Tableaux] comment virer des caractère indésirables?


Sujet :

Langage PHP

  1. #1
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut [Tableaux] comment virer des caractère indésirables?
    Salut,
    je trie un fichier txt dont les données sont séparées par de tabulations.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    foreach ($handle as $line){
    				$line = preg_replace('`["]`','',$line);
    				$row  = explode("\t",$line);
    				trim($row[0]);
    				trim($row[3]);
    				$heading[] = $row[0];
    				if ($row[3]) $group[$row[0]] = $row[3];
    				else $group[$row[0]] = -1;
    				is_array($$row[0]) ? "":$$row[0] = array();
    				array_push ($$row[0], array($row[1],$row[2]));
    			}
    Vous pouvez voir que je fais un trim sur la colonne 4 ($row[3]) .
    Pourtant si dans mon fichier, la ligne est suivi de tabulations, je n'obtient pas le même résultat que si il y a un retour à la ligne.
    GRCFA20 -61.7461 12.0094 B -> tab -> tab
    SLCFA16 -60.8667 13.9833 B
    et comme par la suite je me sert de cette valeur comme clé dans un tableau et que je fais un array_unique() et ben ça ne fonctionne pas car pour le script les deux clés sont différentes.
    Bref, j'espère ne pas être trop confus. Pour résumer comment faire pour se débarasser de tous les caractères en fin de chaine

    Merci de vos conseils.

  2. #2
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    Avec preg_replace("/\s+$/",'',$row[3]); ?
    Mais c'est bizarre, vu que tu fais un explode sur les tabulations...
    Sohnic

    [EDIT]Heu, c'etait peut-etre preg_replace("/\s+$/",'',$line);
    [/EDIT]

  3. #3
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    oui je trouve ça bizarre aussi !
    Existe t-il un moyen d'identifier le caractère indésirable (ce qui permettrai peut être de comprendre sa présence)?
    Merci je vais essayer l'expression régulière.

  4. #4
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Pour trouver le(s) caractère(s) indésirable(s), tu peux déjà regarder le source. On ne sait jamais.
    Sinon, voici une fonction de php.net pour convertir une chaine en hexadecimal.
    Ensuite, avec une table de conversion, tu trouveras l'équivalent "normal".

    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
     
     
    <?php
     
    function strhex($string) {
     
       $hex = '';
       $len = strlen($string);
     
       for ($i = 0; $i < $len; $i++) {
     
           $hex .= str_pad(dechex(ord($string[$i])), 2, 0, STR_PAD_LEFT);
     
       }
     
       return $hex;
     
    }
     
    ?> 
    S.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/09/2006, 17h43
  2. Réponses: 4
    Dernier message: 29/08/2006, 18h44
  3. Réponses: 4
    Dernier message: 28/01/2006, 21h03
  4. Réponses: 3
    Dernier message: 27/06/2005, 17h24
  5. Comment extraire des caractères d'une chaine ?
    Par Powa87 dans le forum Langage
    Réponses: 16
    Dernier message: 01/01/2005, 20h00

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