| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
2fou WRInaute occasionnel

Inscrit le: 08 Juil 2003 Messages: 207 Localisation: Toulouse
|
Posté le : Mer Oct 19, 2005 11:53 Sujet du message: PHp : Interpreter bbcode |
|
|
bonjour,
j'ai pour un site dans une page d'admin : un formulaire d'insertion de texte : textarea + boutons de mise en forme bbcode (gras, souligné, lien, et image). Après validation, ce texte mis en forme (ajout des balises bbcode) est insérés dans ma bdd.
Puis sur une page du site du site public : j'affiche ce texte en transformant les balises bbcode en html. Pour cela, j'ai récupéré un script.
ça fonctionne pour le gras, l'italique, le souligné, l'insertion d'image, le lien classique [ u r l ] http://www.webrankinfo.com [ / u r l ] transformé en <a href="http://www.webrankinfo.com">http://www.webrankinfo.com</a>
.
Parcontre, je n'arrive pas à transformer : [ u r l = http://www.webrankinfo.com ] Référencement google[ / u r l ] en <a href="http://www.webrankinfo.com">Référencement google</a>
le scripts que j'utilise pour la transformation est le suivant :
| Code: |
function bbCode($description)
// remplace les balises BBCode par des balises HTML
{
// gras
$description=str_replace("[b]", "<strong>", $description);
$description=str_replace("[/b]", "</strong>", $description);
// italique
$description=str_replace("[i]", "<em>", $description);
$description=str_replace("[/i]", "</em>", $description);
// soulignement
$description=str_replace("[u]", "<u>", $description);
$description=str_replace("[/u]", "</u>", $description);
// lien
$regLienSimple="\[url\] ?([^\[]*) ?\[/url\]";
$regLienEtendu="\[url ?=([^\[]*) ?] ?([^]]*) ?\[/url\]";
if (ereg($regLienSimple, $description)) $description=ereg_replace($regLienSimple, "<a href=\"\\1\">\\1</a>", $description);
else $description=ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $description);
// image
$regImage="\[img\] ?([^\[]*) ?\[/img\]";
$regImageAlternatif="\[img ?= ?([^\[]*) ?\]";
if (ereg($regImage, $description)) $description=ereg_replace($regImage, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $description);
else $description=ereg_replace($regImageAlternatif, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $description);
return $description;
}
|
| Code: |
| echo bbCode($description); |
Avez-vous une idée des modifications à apporter à ce code pour y parvenir ?
j'avoue ne pas bien comprendre le fonctionnement du script concernant les liens et les images.
ps : quel format bbcode concerne $regImageAlternatif ?
ps : à votre avis est-il préférable d'avoir dans la bdd le texte au format bbcode [b] ou au format html <strong> ?
Merci de votre Aide |
|
| |
|
 |
2fou WRInaute occasionnel

Inscrit le: 08 Juil 2003 Messages: 207 Localisation: Toulouse
|
Posté le : Mer Oct 19, 2005 14:26 Sujet du message: PHp : Interpreter bbcode |
|
|
Bon, pour la transformation de [ u r l = ... ]bla bla bla[/url], c'est bon, j'ai trouvé le code suivant, qui fonctionne :
| Code: |
// lien
$description = nl2br($description);
$description = preg_replace('`\[url=([http://].+?)](.+?)\[/url]`si','<a href="#" onclick="window.open(\'$1\',\'popup\');" title="$1">$2</a>',$description);
$description = preg_replace('`\[url=(.+?)](.+?)\[/url]`si','<a href="#" onclick="window.open(\'http://$1\',\'popup\');" title="$1">$2</a>',$description);
$description = preg_replace('`\[url]([http://].+?)\[/url]`si','<a href="#" onclick="window.open(\'$1\',\'popup\');" title="$1">$1</a>',$description);
$description = preg_replace('`\[url](.+?)\[/url]`si','<a href="#" onclick="window.open(\'http://$1\',\'popup\');" title="$1">$1</a>',$description); |
|
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|