Rechercher : dans
Par :

PHP regex ereg_replace les espaces par  

Dernière réponse le 30 sep 2008 à 21:49:14 pekka, le 30 sep 2008 à 18:44:30 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « PHP regex ereg_replace les espaces par   » dans :
[PHP] Les ressemblances à ne pas confondre VoirIntroduction Concaténation ou paramètres ? Guillemets/Apostrophe Structure require/include isset vs empty htmlentities ou htmlspecialchars ? Nombre de signes égal Introduction Cette astuce présente plusieurs fonction ou astuces en php...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
Caractéristiques du langage Php VoirL'interprétation du code Un code PHP (celui compris entre les délimiteurs ) est un ensemble d'instructions se terminant chacune par un point-virgule (comme en langage C). Lorsque le code est interprété, les espaces, retours chariot et...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...

1

CkoiDonc ??, le 30 sep 2008 à 18:54:43

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.

Répondre à CkoiDonc ??

2

pekka, le 30 sep 2008 à 18:58:42

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

Répondre à pekka

3

CkoiDonc ??, le 30 sep 2008 à 19:19:04

Re,

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

Que faire ?...

Répondre à CkoiDonc ??

4

CkoiDonc ??, le 30 sep 2008 à 19:27:52

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.

Répondre à CkoiDonc ??

5

CkoiDonc ??, le 30 sep 2008 à 19:30:46

Ouh !!!

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

mes sources : http://fr.php.net/ereg_replace

Bonne soirée.

Répondre à CkoiDonc ??

6

pekka, le 30 sep 2008 à 20:00:21

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

Répondre à pekka

7

DelepY, le 30 sep 2008 à 21:42:04

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>

Répondre à DelepY

8

 DelepY, le 30 sep 2008 à 21:49:14
  • +1

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

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

Répondre à DelepY