Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/10/2007, 20h16   #1
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
Par défaut Pattern preg_replace pour ajouter des strong's

Bonjours,


j'ai cherché un moment, mais je j'aimerai un avis d'expert pour un pattern qui modifie le contenu d'une page HTML pour y ajouter des balises strong's seulement dans le texte visible, (pas dans les balises, titres, meta's)
Voici le code en question:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
ob_start();
$strong = "test|essai";
?>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="description"
content="TEST">
<meta name="keywords"
content="test,essai,keyword">
<title>TEST</title>
</head>
<body background="backgd03.jpg" text="#000000" link="#0000FF"
vlink="#8E236B" alink="#0000FF">
<p><b>Dernière mise à jour le 13 septembre 2003.</b></p>
<p>test</p>
<p>essai</p>
essai
</body>
</html>
<?php
$output = ob_get_contents();
ob_end_clean();
$output = preg_replace('`'.$strong.'`i', '<strong>$0</strong>', $output);
echo $output;
?>
Voilà, donc j'aimerai un pattern qui permet d'ajouter <strong> uniquement au texte de contenu.
merci d'avance
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 16h00   #2
Membre du Club
 
Avatar de randimby
 
Inscription : décembre 2003
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 64
Points : 57
Points : 57
Envoyer un message via MSN à randimby
Je te propose de le faire en 2 mouvements.

Code :
1
2
3
4
5
6
7
 
//1) diviser output en 3 parts, en-tête, body, fin
preg_match('|^(.*)(<body[^>]*>.*</body>)(.*)$|mis', $output, $m1);
//2) Ne traiter que $m[2] (body)
$m1[2] = preg_replace('`'.$strong.'`i', '<strong>$0</strong>', $m1[2]);
//3) Et voilà
echo implode($m[1]);
randimby est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h35.


 
 
 
 
Partenaires

Hébergement Web