problème retour à la ligne avec certains espaces

WRInaute passionné
Salut,

Je rencontre un problème d'affichage avec certains espaces contenus dans des textes saisis par d'autres utilisateurs (peut-être utilisant IE ou après un copier / coller à partir de MS Word...).

Les espaces contenus dans le texte saisis sont automatiquement transformés à l'affichage en " ", ce qui donne par exemple "mon titre long".

Ceci me pose un problème d'affichage puisque l'absence d'espaces réels dans la chaine empêche le retour à la ligne qui déborde donc sur les autres cadres...

J'ai essayé un str_replace(" "," ",$machaine) mais ça ne fonctionne pas, ce qui me fait penser que c'est la navigateur qui provoque le problème peut-être en traduisant des caractères spéciaux.

Le problème se pose avec IE et Firefox mais par contre il n'y a manifestement pas de soucis avec les textes saisis dans un champ textarea.

Une idée ?

Fab
 
WRInaute passionné
dorian53 a dit:
La solution du str_replace(" "," ",$machaine) devrait fonctionner pourtant.

C'est ce que je pensais, mais ça ne marche pas, ce qui va dans le sens d'une interprétation par le navigateur d'un caractère spécial du genre MS Word.

Le problème c'est que je crois qu'il y a une ribambelle de codages différents pour les espaces sur ms word, donc c'est difficile à gérer.
 
WRInaute accro
...

... les textes sont saisis de quelle façon ? un champ standard, un champ sur lequel tu aurais deployé un script genre FckEditor ?
 
WRInaute accro
Fab le Fou a dit:
dorian53 a dit:
La solution du str_replace(" "," ",$machaine) devrait fonctionner pourtant.

C'est ce que je pensais, mais ça ne marche pas, ce qui va dans le sens d'une interprétation par le navigateur d'un caractère spécial du genre MS Word.

Le problème c'est que je crois qu'il y a une ribambelle de codages différents pour les espaces sur ms word, donc c'est difficile à gérer.

preg_replace()
http://www.expreg.com/pregreplace.php
 
WRInaute passionné
KOogar a dit:

Oui j'ai essayé avec la classe [[:space:]] mais le résultat est le même...

UsagiYojimbo : le texte est saisi dans un champ input tout ce qu'il y a de plus ordinaire. Je précise aussi que je n'utilise pas htmlentities().

e-kiwi : non il s'agit de   ...

Ce qui est marrant c'est que quand j'ouvre avec notepad le fichier cache dans lequel se trouve stockée ma chaine, l'espace entre les mots apparait tout à fait normalement.
 
WRInaute passionné
e-kiwi a dit:
tu as une url ?

Oui tu peux par exemple voir sur la page suivante l'annonce "Stage et cours de sculpture..." ou même la première annonce même si le titre est moins long : http://www.annuaire-morbihan.info/annonces-morbihan.php

Avec IE 6 il y a des fois où ça fait carrément descendre la colonne centrale en dessous des autres.

Il suffit généralement que j'affiche l'enregistrement dans mon back office et que je réenregistre pour que le problème se règle.
 
WRInaute passionné
KOogar a dit:
Je voyais plus une classe avec un motif du genre : [^&[a-z];\.$]

Oui en supprimant tout ce que je ne tolère pas. C'est ce que je fais pour créer mes url. C'est un peu lourd, mais ça peut être une solution. A priori, des strpos / str_replace en série serait quand même moins gourmands que des expressions régulières.
 
WRInaute impliqué
J'ai exactement le même problème.
Est ce que quelqu'un peut m'aider.
Voici mon code:
$adresseTMP2 = str_replace(" ",'',(utf8_encode($adresseTMP1)));
 
Discussions similaires
Haut