PHP regex ereg_replace les espaces par  

pekka -  
 DelepY -
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
Configuration: Windows XP
Firefox 3.0.3

6 réponses

  1. DelepY
     
    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
  2. CkoiDonc ??
     
    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
  3. CkoiDonc ??
     
    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
    1. pekka Messages postés 4 Statut Membre
       
      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
  4. CkoiDonc ??
     
    Re,

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

    Que faire ?...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. CkoiDonc ??
     
    Ouh !!!

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

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

    Bonne soirée.
    0
    1. pekka Messages postés 4 Statut Membre
       
      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
  7. DelepY
     
    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