begin process at 2012 05 27 20:40:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > TRANSFORMER DU PBB CODE EN CODE HTML

TRANSFORMER DU PBB CODE EN CODE HTML


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :pbb, code, html, transformer Niveau :Initié Date de création :22/04/2011 Vu :2 068

Auteur : audain

Ecrire un message privé
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

ce code crée une fonction qui retourne le code HTML correspondant au pbb-code passer en paramètre.
j’avouerais que ce code n'est pas de moi dans sa totalité,
je l'ai simplement passer en fonction
et commenté pour plus de simplicité.

Source

  • <?php
  • function encode_pbb($chaine)
  • {
  • //liste des remplacement a effectuer dans le text
  • $conv = array(
  • '\[b\](.*?)\[\/b\]' => '<strong>$1</strong>',
  • '\[i\](.*?)\[\/i\]' => '<em>$1</em>',
  • '\[u\](.*?)\[\/u\]' => '<u>$1</u>',
  • '\[center\](.*?)\[\/center\]' => '<div style="text-align:center;">$1</div>',
  • '\[droite\](.*?)\[\/droite\]' => '<div style="text-align:right;">$1</div>',
  • '\[img\](.*?)\[\/img\]' => '<img src="$1" style="width:500px;" class="image"/>',
  • '\[url=([^\]]*)\](.*)\[\/url\]' => '<a href="$1" style="color: #0071bc;" >$2</a>',
  • '\[video\](.*)\[\/video\]' => '<script type="text/javascript" src="video.php?link=$1"></script>',
  • '\[daily\](.*)\[\/daily\]' => '<object width="320" height="245"><param name="movie" value="http://www.dailymotion.com/video/{$1}"></param><param name="allowfullscreen" value="true"></param><embed src="http://www.dailymotion.com/video/{$1}" type="application/x-shockwave-flash" width="320" height="245" allowfullscreen="true"></embed></object>',
  • );
  • //empêche les balise de s'afficher
  • $chaine = htmlentities($chaine,ENT_QUOTES,'iso-8859-1');
  • //remplacer les balise pbb code par des balise html
  • foreach($conv as $k=>$v)
  • {
  • $chaine = preg_replace('/'.$k.'/',$v,$chaine);
  • }
  • return $chaine;
  • }
  • ?>
<?php
function encode_pbb($chaine)
{
//liste des remplacement a effectuer dans le text
$conv = array(
				'\[b\](.*?)\[\/b\]'				=> '<strong>$1</strong>',
				'\[i\](.*?)\[\/i\]'				=> '<em>$1</em>',  
				'\[u\](.*?)\[\/u\]'				=> '<u>$1</u>',
				'\[center\](.*?)\[\/center\]'	=> '<div style="text-align:center;">$1</div>',
				'\[droite\](.*?)\[\/droite\]'	=> '<div style="text-align:right;">$1</div>',
				'\[img\](.*?)\[\/img\]'			=> '<img src="$1" style="width:500px;" class="image"/>',  
				'\[url=([^\]]*)\](.*)\[\/url\]'	=> '<a href="$1" style="color: #0071bc;" >$2</a>',
				'\[video\](.*)\[\/video\]'		=> '<script type="text/javascript" src="video.php?link=$1"></script>',
				'\[daily\](.*)\[\/daily\]'		=> '<object width="320" height="245"><param name="movie" value="http://www.dailymotion.com/video/{$1}"></param><param name="allowfullscreen" value="true"></param><embed src="http://www.dailymotion.com/video/{$1}" type="application/x-shockwave-flash" width="320" height="245" allowfullscreen="true"></embed></object>',
				);

//empêche les balise de s'afficher
$chaine = htmlentities($chaine,ENT_QUOTES,'iso-8859-1');

//remplacer les balise pbb code par des balise html
foreach($conv as $k=>$v)
	{
		$chaine = preg_replace('/'.$k.'/',$v,$chaine);
	}

return $chaine;
}
?>

 Conclusion

amuser vous dans vos futur forum chat et tous ce que votre imagination concevra.


 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

FONCTION ENVOI DE MAIL PHP QUI PERMET DE PASSER LE FILTRE AN... par alienat
Source avec Zip GÉNÉRER LA CLÉ D'UN CODE-BARRE EAN13 par kalou037
LISTER DES LIENS / URLS DEPUIS UN TEXTE par gmni
Source avec Zip ENVOIE MAIL EN HTML AVEC PHP PAS DE SPAM SUR HOTMAIL ET GMAI... par Dje33
Source avec une capture CONVERTISSEUR CODES COULEUR ET STYLE SH (TTY) EN HTML par Elektordi

Commentaires et avis

Commentaire de JJDai le 23/04/2011 10:57:59

Bonjour
Execusez mon ignorance, mais C'est quoi le PBB ?
JJDAI

Commentaire de cod57 le 23/04/2011 23:23:31

bonsoir
@JJDAI
ça sert surtout dans les blogs et les livres d'or pour faire du code 'like' html et raccourçi
On place dans un textarea son bbcode PUIS php traduit aprés en lecture
En meme temps tu evites par exemple de stocker du html dans tes messages voir du javascript (tentative de hack ... XSS)

http://www.php.net/manual/fr/book.bbcode.php

exemple

echo encode_pbb('[b]test[/b]');
echo '<br />';
echo encode_pbb('[i]test[/i]');
echo '<br />';
echo encode_pbb('[img]http://www.google.com/images/nav_logo65.png[/img]');

si tu fais 'voir le code source' dans ton navigateur tu veras c'est traduit en html

a++

Commentaire de Morpion91 le 24/04/2011 08:10:54

Salut. Simple et pas mal pour moi.
Serait-il possible de compléter ta liste ?
Pour ca, va voir sur 'http://fr.wikipedia.org/wiki/BBCode'
Merci et bon courage

Commentaire de audain le 24/04/2011 13:48:55

je vais voire je promet rien.

Commentaire de JJDai le 25/04/2011 00:02:41

Merci pour l'explication
JJDAI

Commentaire de Reldan le 26/04/2011 16:26:22 6/10

Voilà la méthode que j'utilise (pour info je crois qu'on appel ça du bbCode et non du pbb)
j'ai mis en commentaires les tags que je n'utilise pas sur mon site (parce que ça doit être assez gourmand l'accumulation de preg_replace)

class StringHelper{

[...]

public static function bbcode2html($text){
$text = preg_replace('!\[quote\](.+)\[/quote\]!isU', '<div class="citation">Citation : <br/>$1</div>', $text);
$text = preg_replace("!\[quote\=(.+)\](.+)\[\/quote\]!isU", "<div class=\"citation\"><strong>$1 :</strong><br>$2</div>", $text);
$text = preg_replace('!\[b\](.+)\[/b\]!isU', '<strong>$1</strong>', $text);
$text = preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $text);
$text = preg_replace('!\[u\](.+)\[/u\]!isU', '<span style="text-decoration: underline;">$1</span>', $text);
//$text = preg_replace('!\[center\](.+)\[/center\]!isU', '<p tyle="text-align:center;margin:0px;padding:0px;">$1</p>', $text);
//$text = preg_replace('!\[right\](.+)\[/right\]!isU', '<p style="text-align: right; margin: 0px; padding: 0px;">$1</p>', $text);
//$text = preg_replace('!\[left\](.+)\[/left\]!isU', '<p style="text-align: left; margin: 0px; padding: 0px;">$1</p>', $text);
//$text = preg_replace('!\[titre\](.+)\[/titre\]!isU', '<h3>$1</h3>',$text);
//$text = preg_replace('!\[email\](.+)\[/email\]!isU', '<a href="mailto:$1">$1</a>',$text);
//$text = preg_replace('!\[img\](.+)\[/img\]!isU', '<img src="$1" border="0">',$text);
$text = preg_replace('!\[url\](.+)\[/url\]!isU', '<a href="$1" target="_blank">$1</a>',$text);
$text = preg_replace("!\[url=([^\]]+)\](.+)\[/url\]!Ui","<a href=\"$1\" >$2</a>",$text);
//$text = preg_replace("!\[size=([^\]]+)\]!mi","<span class=\"size_$1\">",$text);
//$text = str_replace ( '[/size]' , '</span>' , $text );
$text = preg_replace("!\[color=([^\]]+)\](.+)\[\/color\]!mi","<font color=\"$1\">$2</font>",$text);
//$text = str_replace ( '[/color]' , '</color>' , $text );
$text = preg_replace("!\[list\](.+)\[/list\]!isU","<ul> $1 </ul>",$text);
//$text = preg_replace("!\[list=([^\]]+)\](.+)\[/list\]!isU","<ol start=\"$1\"> $2 </ol>",$text);
$text = preg_replace("!\[\*\](.+)(?=(\[\*\]|</ul>))!isU","<li>$1</li>",$text);
//$text = str_replace('[code]', '<pre>', $text);
//$text = str_replace('[/code]', '</pre>', $text);
return(nl2br($text));
}
}

Commentaire de Reldan le 26/04/2011 16:31:35

correction :




public static function bbcode2html($text){
$text = preg_replace('!\[quote\](.+)\[/quote\]!isU', '<div class="citation">Citation : <br/>$1</div>', $text);
$text = preg_replace("!\[quote\=(.+)\](.+)\[\/quote\]!isU", "<div class=\"citation\"><strong>$1 :</strong><br>$2</div>", $text);
$text = preg_replace('!\[b\](.+)\[/b\]!isU', '<strong>$1</strong>', $text);
$text = preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $text);
$text = preg_replace('!\[u\](.+)\[/u\]!isU', '<span style="text-decoration: underline;">$1</span>', $text);
//$text = preg_replace('!\[center\](.+)\[/center\]!isU', '<p tyle="text-align:center;margin:0px;padding:0px;">$1</p>', $text);
//$text = preg_replace('!\[right\](.+)\[/right\]!isU', '<p style="text-align: right; margin: 0px; padding: 0px;">$1</p>', $text);
//$text = preg_replace('!\[left\](.+)\[/left\]!isU', '<p style="text-align: left; margin: 0px; padding: 0px;">$1</p>', $text);
//$text = preg_replace('!\[titre\](.+)\[/titre\]!isU', '<h3>$1</h3>',$text);
//$text = preg_replace('!\[email\](.+)\[/email\]!isU', '<a href="mailto:$1">$1</a>',$text);
//$text = preg_replace('!\[img\](.+)\[/img\]!isU', '<img src="$1" border="0">',$text);
$text = preg_replace('!\[url\](.+)\[/url\]!isU', '<a href="$1" target="_blank">$1</a>',$text);
$text = preg_replace("!\[url=([^\]]+)\](.+)\[/url\]!Ui","<a href=\"$1\" >$2</a>",$text);
//$text = preg_replace("!\[size=([^\]]+)\](.+)\[\/size\]!mi","<span class=\"size_$1\">$2</span>",$text);
$text = preg_replace("!\[color=([^\]]+)\](.+)\[\/color\]!mi","<font color=\"$1\">$2</font>",$text);
$text = preg_replace("!\[list\](.+)\[/list\]!isU","<ul> $1 </ul>",$text);
//$text = preg_replace("!\[list=([^\]]+)\](.+)\[/list\]!isU","<ol start=\"$1\"> $2 </ol>",$text);
$text = preg_replace("!\[\*\](.+)(?=(\[\*\]|</ul>))!isU","<li>$1</li>",$text);
$text = preg_replace('!\[code\](.+)\[/code\]!isU', '<pre>$1</pre>', $text);
return(nl2br($text));
}

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment créer un fichier externe avec du code utilisé par plusieur page html ??? [ par GuilleW ] Bonjour ....Pour commencer c'est pas mal qu'il y est du monde qui se bouge pour aider les autes ... (entre autre ... moi dans ce cas !!! <img src=/i Comment je peux cacher la source de mon code html dans une page php pour ne pas qu'on voye les action faite par le site ? [ par BenXbox ] Comment je peux cacher la source de mon code html dans une page php pour ne pas qu'on voye les action faite par le site ? Lire un code html en php [ par Yuleesize ] Bjr,J'aimerais savoir comment faire pour lire le code source html de n'importe quelle page du web via PHPJe crois qu'il faut utiliser la fonction file Code html et php [ par actinetwork ] Hello tlm. je voulais juste poser une petite question...voila,un bou de mon code php ressemble a un truc du style:&lt;phpmysql_connect($connect_host, lancer du code php a partir d un bouton html [ par fernand22fr ] Bonjours, je souhaiterais savoir comment je pourrais lancer du code php lorsque j appui sur un bouton( input type="button") d une page html.Merci d a prbl : un include dan un envoi de mail [ par malob87 ] bjr a tous, voici mon code complet:&lt;?if(empty($_POST[msg]))//on vérifie avec empty voir si les champs sont vide {print "le champ msg est vide"; //s Envoi de mail HTML [ par cyaya ] j'ai ecrit ce code pour envoyer des mail avec un textArea en format text, je voudrais savoir s'il y une option à rajouter pour pouvoir envoyer le mail Tableax en HTML à transformer en PDF grace a FPDF [ par bolbo ] Bonjour,J'utilise actuellement http://fpdf.org/?lang=fr pour générer des fichiers php à partir de fichiers HTML.Mon probleme est que le parser HTML ne include nuit à l'affichage MySql [ par webdesignasp ] Bonjour,Qu'elqu'un peut-il me dire pourquoi j'ai ce problème ?Quand je lance cette page ça marche :&lt;?//include("include/connect.php");$table="clien Recup code html de fichier pour envoyer par mail() [ par Magidev ] Je souhaite récuperer le code d'un fichier HTML de mon site pour l'envoyer par mail au meme formatDans ce code HTML il ya des var php du style $mavarE


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales