problème retour à la ligne avec certains espaces


Fab le Fou
WRInaute passionné
WRInaute passionné
 
Messages: 1511
Inscription: 2 Déc 2004

problème retour à la ligne avec certains espaces

Message le Ven Mar 30, 2007 11:00

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


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2216
Inscription: 10 Avr 2005

Message le Ven Mar 30, 2007 11:13

La solution du str_replace(" "," ",$machaine) devrait fonctionner pourtant.


Fab le Fou
WRInaute passionné
WRInaute passionné
 
Messages: 1511
Inscription: 2 Déc 2004

Message le Ven Mar 30, 2007 11:22

dorian53 a écrit: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.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

...

Message le Ven Mar 30, 2007 11:42

... les textes sont saisis de quelle façon ? un champ standard, un champ sur lequel tu aurais deployé un script genre FckEditor ?


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Message le Ven Mar 30, 2007 11:46

dans ton code source, regarde si   ne serait pas plutot &ampnbsp; ;)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Ven Mar 30, 2007 13:18

Fab le Fou a écrit:
dorian53 a écrit: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


Fab le Fou
WRInaute passionné
WRInaute passionné
 
Messages: 1511
Inscription: 2 Déc 2004

Message le Ven Mar 30, 2007 13:47

KOogar a écrit:preg_replace()
http://www.expreg.com/pregreplace.php


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.


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Message le Ven Mar 30, 2007 14:00

tu as une url ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Ven Mar 30, 2007 14:15

Je voyais plus une classe avec un motif du genre : [^&[a-z];\.$]


Fab le Fou
WRInaute passionné
WRInaute passionné
 
Messages: 1511
Inscription: 2 Déc 2004

Message le Ven Mar 30, 2007 14:15

e-kiwi a écrit: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.


Fab le Fou
WRInaute passionné
WRInaute passionné
 
Messages: 1511
Inscription: 2 Déc 2004

Message le Ven Mar 30, 2007 14:20

KOogar a écrit: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.


hebmaster
WRInaute passionné
WRInaute passionné
 
Messages: 1133
Inscription: 22 Déc 2005

Re: problème retour à la ligne avec certains espaces

Message le Lun Aoû 30, 2010 23:47

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)));


hebmaster
WRInaute passionné
WRInaute passionné
 
Messages: 1133
Inscription: 22 Déc 2005

Re: problème retour à la ligne avec certains espaces

Message le Mar Aoû 31, 2010 12:03

C'est bon j'ai trouvé:

$adresseTMP2 = (str_replace(chr(0xC2).chr(0xA0),' ',utf8_encode($adresseTMP1)));


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité