OVH Cloud OVH Cloud

Chercher a mettre de l'enrichissement depuis un texte-brut....

8 réponses
Avatar
loiseauthierry
Salut à tous,

Soit un petit texte en brut (style email) qui doit être analysé en PHP
pour présenter une page web.

Je cherche à savoir comment remplacer tous les enrichissements textuels
en enrichissement html ou css.

Par exemple :

=-=-=
Bonjour,

Nous venons de découvrir /in situ/ un fabuleux trésor ! Mais attention !
Il paraît que cela appartient pour partie à l'*Etat*, donc, _cela ne
nous appartient pas_ :-((
=-=-=

Là, je voudrais que remplacer / par :

/in situ/ => <i>in situ</i>
*Etat => <b>Etat</b>
_cela ne nous appartient pas_ => <u>cela...</u>

Comment m'y prendre ?

:-/

Thierry
--
<http://astrophoto.free.fr> Calculatrice astronomique en
JavaScript, une carte du ciel avec la position des planètes,
animation du système solaire, et «ousqu'ilfait» jour & nuit ?

8 réponses

Avatar
Nadine St-Amand
Là, je voudrais que remplacer / par :

/in situ/ => <i>in situ</i>
*Etat => <b>Etat</b>
_cela ne nous appartient pas_ => <u>cela...</u>

Comment m'y prendre ?


connais-tu les expressions regulieres ? (abbreviation: regex)
Tu peux utiliser la fonction preg_replace ou la fonction ereg_replace
pour parvenir à tes fins.

--
Nadine

:-/

Thierry


Avatar
Marc

Comment m'y prendre ?


avec les expressions regulieres, et si tu n'y arrives pas,
inspire toi de ce qui existe deja et qui fait a peu pres
la meme chose :
* wiki,
* spip,
* classes pear

Avatar
P'tit Marcel
Nadine St-Amand wrote:

Thierry Loiseau wrote:
/in situ/ => <i>in situ</i>
*Etat => <b>Etat</b>
_cela ne nous appartient pas_ => <u>cela...</u>
Comment m'y prendre ?


connais-tu les expressions regulieres ? (abbreviation: regex)
Tu peux utiliser la fonction preg_replace ou la fonction ereg_replace
pour parvenir à tes fins.



oui
donc un truc du genre :

$masque = array('`b/(.+)/b`U', '`b*(.+)*b`U', '`b_(.+)_b`U');
$rempla = array('<i>$1</i>', '<b>$1</b>', '<u>$1</u>');
$html = preg_replace($masque, $rempla, $texte);


non testé donc SGDG.

--
P'tit Marcel


Avatar
ftc
Salut à tous,

Soit un petit texte en brut (style email) qui doit être analysé en PHP
pour présenter une page web.

Je cherche à savoir comment remplacer tous les enrichissements textuels
en enrichissement html ou css.



Tu as une très bonne classe qui s'appelle wiki2xhtml dont tu peux
t'inspirer, je n'ai plus l'adresse en tête, mais on la trouve facilement
grâce à Google.

Avatar
loufoque
Thierry Loiseau a dit le 27/05/2005 à 20:59:

Là, je voudrais que remplacer / par :

/in situ/ => <i>in situ</i>
*Etat => <b>Etat</b>
_cela ne nous appartient pas_ => <u>cela...</u>

Comment m'y prendre ?


J'ai déjà abordé le sujet sur alt.fr.comp.lang.php, mais tu vas
facilement te heurter au problème de chevauchement.

Avatar
loiseauthierry
loufoque wrote:

Là, je voudrais que remplacer / par :

/in situ/ => <i>in situ</i>
*Etat => <b>Etat</b>
_cela ne nous appartient pas_ => <u>cela...</u>

Comment m'y prendre ?


J'ai déjà abordé le sujet sur alt.fr.comp.lang.php, mais tu vas
facilement te heurter au problème de chevauchement.


facilement ? :-((

<http://www.trombinewtscope.free.fr>

Thierry
--
<http://astrophoto.free.fr> Calculatrice astronomique en
JavaScript, une carte du ciel avec la position des planètes,
animation du système solaire, et «ousqu'ilfait» jour & nuit ?


Avatar
P'tit Marcel
P'tit Marcel wrote:
Thierry Loiseau wrote:

/in situ/ => <i>in situ</i>
*Etat => <b>Etat</b>
_cela ne nous appartient pas_ => <u>cela...</u>
Comment m'y prendre ?





oui
donc un truc du genre :

$masque = array('`b/(.+)/b`U', '`b*(.+)*b`U', '`b_(.+)_b`U');
$rempla = array('<i>$1</i>', '<b>$1</b>', '<u>$1</u>');
$html = preg_replace($masque, $rempla, $texte);

non testé donc SGDG.


J'ai finalement testé et visiblement l'assertion b ne marche pas (si
quelqu'un a une idée, il est le bienvenu...)

Ce code-ci est un peu plus compliqué mais ça marche :

$masque = array('`(W)/(.+)/(W)`Us', '`(W)*(.+)*(W)`Us',
'`(W)_(.+)_(W)`Us');
$rempla = array('$1<i>$2</i>$3', '$1<b>$2</b>$3',
'$1<u>$2</u>$3');
$html = preg_replace($masque, $rempla, $texte);


eça
--
P'tit Marcel



Avatar
loufoque
Thierry Loiseau a dit le 29/05/2005 à 08:50:

facilement ? :-((


Si tu as /truc *muche/ bidule*, la plupart des codes habituels
produiront du code html non valide.
Je pars du principe qu'un code qui peut générer des données erronées
dans certains cas est un mauvais code.