PHP regex ereg_replace les espaces par  

Fermé
pekka - 30 sept. 2008 à 18:44
 DelepY - 30 sept. 2008 à 21:49
Bonjour,

J'ai developpé une appli php/MySQL.
Dans la base les donnees j'ai du texte formatte ainsi:

blabla blabla blabla:
- blablablabla blabla blabla
- blabla blabla blabla
- blabla blabla

Le probleme est qu a l affichage j obtiens:

blabla blabla blabla:
- blablablabla blabla blabla
- blabla blabla blabla
- blabla blabla

... il n'affiche pas les 1ers espaces importants pour l indentation.

J'aimerai remplacer les espaces par   MAIS UNIQUEMENT CEUX EN DEBUT DE LIGNE.

j ai essayé
$text= ereg_replace('^[[:space:]+]', ' ', $text);
mais marche pas...

Est que vous auriez une idee de regex qui pourrais marcher.

Merci pour votre contribution
A voir également:

6 réponses

attention, mon code précédent ne marche pas bien en copie/coller :
> le [  ] est fait avec [  ], et à savoir que   ne retourne pas le caractère "espace", mais l' "espace insécable"..
" "(espace)=  et " "( )=&#160

> fait ton copie coller, mais refait manuellement les espaces du str_replace(" ", ...
3
Ah ah !!,

j'ai ptet ca comme piste (remplacer les guillemets " au lieu de ' dans votre fonction) :

$text= ereg_replace("^[[:space:]+]", " ", $text);

Sinon, avez vous testé la fonction str_replace() ?.

Cordialement.
1
Bonjoooour,

Alors...

"
blabla blabla blabla:
- blablablabla blabla blabla
- blabla blabla blabla
- blabla blabla

Le probleme est qu a l affichage j obtiens:

blabla blabla blabla:
- blablablabla blabla blabla
- blabla blabla blabla
- blabla blabla
"
--> Il semble difficile de voir la différence entre les deux (:>)... meme avec une loupe.

"J'aimerai remplacer les espaces par MAIS UNIQUEMENT CEUX EN DEBUT DE LIGNE."

--> remplacer les espaces par koi exactement ?.

Merci pour vos précisions.
0
pekka Messages postés 3 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 30 septembre 2008
30 sept. 2008 à 18:58
mon post s'est mal affiché... les espaces en debut de lignes ne sont pas affichés!

C'est exactement le PB que j ai aussi sur mon site

J'ai reformater mon message.
Merci de suivre sous ce lien.

http://www.commentcamarche.net/forum/affich 8670316 php regex ereg replace espaces par nbsp
-1
Re,

- Un admin. a du supprimé votre lien j'en ai bien peur (:<).
- c'était pourtant le bon lien.

Que faire ?...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ouh !!!

(hé hé - je vous ai fait peur la nan ... ?... ah bon)

mes sources : https://www.php.net/ereg_replace

Bonne soirée.
0
pekka Messages postés 3 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 30 septembre 2008
30 sept. 2008 à 20:00
Je reformate mon 1er post qui est mal passé.

***************************************************
Dans la base les donnees j'ai du texte formatte ainsi:

blabla blabla blabla:
- blablablabla blabla blabla
    - blabla blabla blabla
        - blabla blabla

Le probleme est qu a l affichage j obtiens:

blabla blabla blabla:
- blablablabla blabla blabla
- blabla blabla blabla
- blabla blabla

... il n'affiche pas les 1ers espaces importants pour l indentation.

J'aimerai remplacer les espaces par & nbsp; MAIS UNIQUEMENT CEUX EN DEBUT DE LIGNE.

j ai essayé
$text= ereg_replace('^[[:space:]+]', '& nbsp;', $text);
mais marche pas...
********************************************************

Reponse a CkoiDonc ??

" ou ' c est pareil...

c'est mon regex qui est faux.
je suis newbie en regex...

str_replace n'est pas appropié dans ce cas.
en effet, je veux remplacer seulement les espaces du debut de chaque ligne et non tous
-1
pour le & :
1- pour faire un &, tape &amp;
2- donc, tape &amp;nbsp; pour faire un &nbsp;
(après cette saisie, je verrait bien si ce que je dit est correct..)

sinon, essaye sa :
> string ereg_replace ( string $pattern , string $replacement , string $string )
> mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

$text= ereg_replace("^[ ]", "&nbsp;", $text);
$text= str_replace("\n ", "\n&nbsp;", $text);
$text= str_replace("  ", " &nbsp;", $text);

ou même, utilise la balise <pre>(preformated)</pre>
0