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 :

Supprimer des espaces à l'interieur d'une chaine [Fait] [RegEx]


Sujet :

Langage PHP

  1. #1
    fey
    fey est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Points : 93
    Points
    93
    Par défaut Supprimer des espaces à l'interieur d'une chaine
    bonjour,

    j'aimerai supprimer tous les espaces a l'interieur d'une chaine
    quel est la methode ?

    parce que j'ai essaye cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $copiest = str_replace(' ', '', $copiest);
    mais cela fonctionne pas

    ps: je dis bien a l'interieur de la chaine et non pas en debut ou fin de chaine.

    merci
    fey

  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
    mais cela fonctionne pas
    chez moi si.
    peux-tu nous donner ta version de PHP et une chaine de caractere avec la quelle tu n'as pas le resultat attendu ?

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je plussoie.

    Voici un exemple d'utilisation, et c'est compatible pour tous les caractères et le même l'espace.

    Comment remplacer/supprimer un mot/caractère dans une chaîne ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    $copiest = str_replace(' ', '', $copiest);
    fonctionne parfaitement.

    Le question est ... les espaces (dans $copiest) sont-ils bien des "espaces" (" ") ?

    Et si l'"espace" était un code url ? (%25, si je ne m'abuse, mais pas sûr de moi)
    Il faudrait alors faire (par ex.) :
    $copiest = str_replace(' ', '', $copiest);
    $copiest = str_replace('%25', '', $copiest);

  5. #5
    fey
    fey est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Points : 93
    Points
    93
    Par défaut
    bonjour,
    oui effectivement la variable provient de la recuperation de parametres de l'url

    je vais tester le %25

    merci pour vos reponses

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    SI c'est le cas tu peux aussi faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace(' ', '', urldecode($copiest))

  7. #7
    fey
    fey est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Points : 93
    Points
    93
    Par défaut
    j'avais pas vu que j'avais pas repondu a toutes les questions :p

    la pour les testes que je fais j'utilise la version 1.8 d'easyphp, qui contient la version 4.3.10 pour php

    j'ai essaye les combinaisons suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$copiest = str_replace(' ', '', ($copiest));
    	$copiest = str_replace(' ', '', urldecode($copiest));
    	$copiest = str_replace('%25', '', ($copiest))
    et a chaque fois qu'il y a un espace dans la chaine il est conserve

    pour tester j'ai mis cela :
    et cela me donne
    alors soit j'ai zappe quelque chose, soit j'ai la poisse

    quelqu'un a une idee ?
    merci

    ps: sinon je recupere la variable de facon classique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_POST['copiest'])){$copiest = $_POST['copiest'];}else{$copiest="";}

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

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

    Il ne s'agit pas d'un espace, mais d'un autre (ou d'autres) caractère(s) invisible(s).

    Pour savoir ce que contiens précisément par chaîne, tu peux utiliser ord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // affiche le code ASCII du deuxième caractère de $copiest :
    echo $ord($copiest[1]);
    Edit : tu as regardé le code source de ta page qui affiche "a5 191b" ?
    Edit2 : puisque c'est une requête post, c'est toi qui as du saisir des données dans un formulaire... Si oui, qu'as-tu saisi ?

  9. #9
    fey
    fey est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Points : 93
    Points
    93
    Par défaut
    lol en fait, j'ai pris la meme methode que celui a qui j'ai demande de tester c'est a dire une mauvaise lol

    un copier colle de la cellule de open office, donc ouais effectivement, il m'a peut etre mis des caracteres parasite qui sont finalement peut etre pas des espaces

    en fait le mieux c'est de changer d'approche, y a t'il une fonction en php qui peut virer tous les caracteres qui ne sont pas des nombres ?

    et sinon pour ton ord il me retourne 160.

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Le carcatère ascii 160 correspond à l'espace insécable.

    Je ne crois pas qu'il existe une fonction toute faite pour remplacer les caractères invisibles. Il y a bien trim, mais elle n'agit que sur les extrémités de la chaîne (et ne prend pas en compte l'espace insécable par défaut).

    Un str_replace fera l'affaire (dans l'exemple, les mêmes caractères que trim + espace insécable) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tabCar = array(" ", "\t", "\n", "\r", "\0", "\x0B", "\xA0");
    $copiest = str_replace($tabCar, array(), $copiest);

  11. #11
    fey
    fey est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 231
    Points : 93
    Points
    93
    Par défaut
    cool merci beaucoup cela fonctionne

    a tout le monde

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

Discussions similaires

  1. Ajouter des espaces à la fin d'une chaine de caracteres
    Par kodo dans le forum Général Java
    Réponses: 1
    Dernier message: 22/04/2011, 12h25
  2. supprimer des blancs à l'intérieur d'une chaine
    Par viny dans le forum ActionScript 3
    Réponses: 7
    Dernier message: 09/03/2010, 20h10
  3. [AC-2002] supprimer des espaces dans une requete
    Par sidde dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/02/2010, 09h51
  4. Supprimer des espace dans une cellules
    Par FCL31 dans le forum Excel
    Réponses: 3
    Dernier message: 01/08/2008, 18h45
  5. [RegEx] Supprimer les espaces au début d'une chaine de caractère
    Par PoichOU dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2008, 18h49

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