Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1485 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Impossible de remplacer un espace par un - même avec str_replace

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Impossible de remplacer un espace par un - même avec str_replace

n°2192475
vanquishV1​2
se coucher tard nuit
Posté le 01-06-2013 à 15:01:44  profilanswer
 

Salut,
 
J'ai une chaine de type "Bonjour ça va bien." qui me vient d'un flux XML.
Je veux remplacer les espaces par des tirets.
Je fais un str_replace(' ','-',$chaine);
Ca fonctionne … mais pas pour toutes mes chaines.
Pour certaines ça fait "Bonjour-ça va bien." ou "Bonjour-ça va-bien".
 
Je soupçonnais que ce soit un autre type d'espace (insécable, fabulation ou autre).
Mais j'ai tout testé : remplacer \t ou   ou même en copiant collant un tab, mais ça ne fonctionne pas.
 
Ma dernière piste : c'est un souci de charset/encodage de caractère. Mais comment trouver le code hexa / le caractère exact que c'est ?
Avez vous déjà eu ce genre de soucis ?
 
Merci


---------------
Bha ouais mais bon, m'enfin quoi...
mood
Publicité
Posté le 01-06-2013 à 15:01:44  profilanswer
 

n°2192527
rufo
Pas me confondre avec Lycos!
Posté le 02-06-2013 à 11:32:49  profilanswer
 

Effective, certains "espaces" n'en sont pas forcément. Tu peux utiliser la fonction ord() pour le vérifier :

Code :
  1. function AfficheListCar($str)
  2. {
  3.    $iSize = streln($str);
  4.    for($i = 0; $i < $iSize; $i++) {
  5.        echo ord($str{$i})." ";
  6.    }
  7. }


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2192537
vanquishV1​2
se coucher tard nuit
Posté le 02-06-2013 à 15:42:15  profilanswer
 

Yes merci c'est ce que j'avais fini par faire et il m'a sorti deux caractères pour cet espace : '194' et '160'. Aucune idée de ce à quoi ce caractère correspond mais du coup j'ai fait un str_replace(chr('194').chr('160),'-',$chaine);
C'est un peu crâde mais ça marche !


---------------
Bha ouais mais bon, m'enfin quoi...
n°2192554
Soileh
Lurkeur professionnel
Posté le 02-06-2013 à 21:39:48  profilanswer
 

En fait pour le code 160 c'est un espace insécable (cf. page Wiki) ;)
Le caractère 194 ça a l'air d'être un  [:er dehy:3]


Message édité par Soileh le 02-06-2013 à 21:40:03

---------------
And in the end, the love you take is equal to the love you make
n°2192579
vanquishV1​2
se coucher tard nuit
Posté le 03-06-2013 à 09:45:35  profilanswer
 

Bizarre ! En tout cas merci !


---------------
Bha ouais mais bon, m'enfin quoi...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Impossible de remplacer un espace par un - même avec str_replace

 

Sujets relatifs
[.htaccess] remplacer les accents par leur code - URL rewriting[résolut]PHPEXCEL impossible de lire le contenu d'une
Remplacer un mot dans un fichier[C] Remplacer un char dans une chaine de caractère
Macro rechercher remplacer [Résolu]Impossible de configurer l'interpreteur PyDev/Eclipse
Insertion impossible dans ma bddmacro pour rechercher/remplacer sur plusieurs fichiers
Erreur impossible à gérerProbleme espace membre
Plus de sujets relatifs à : Impossible de remplacer un espace par un - même avec str_replace


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR