Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/11/2009, 14:32
Hidek1
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 2 meses
Puntos: 334
De acuerdo Aporte: Function: bbcode a html

Una función que ojala le sirva a mas de 1 .. no se si estaba pero la hice recién y pensé en compartirla... si pueden mejorarla de ahí y volver a postearla seria bueno para que fuera mas profesional .. :B

saludos!



Código php:
Ver original
  1. class StringFunctions {
  2.     /**
  3.      * bbcode2html() Estandard bbcode transform [http://www.bbcode.org/reference.php]
  4.      *
  5.      * @access  public
  6.      * @param   $cadena string BBCODE
  7.      * @return  $cadena string HTML
  8.      */
  9.     public function bbcode2html($cadena) {
  10.         // Style's to box code, spoiler, etc.
  11.         define ( 'TITLE_DATA', ' style="font-size:11px;color:#666;"' );
  12.         define ( 'BOX_STYLE', ' style="border:1px solid #ccc;background:#f1f1f1;padding:5px;margin:2px;"' );
  13.        
  14.         // Array bbcode & html PRCE
  15.         $bbcode [] = '/\[b\](.*)\[\/b\]/is';
  16.         $html [] = '<b>$1</b>';
  17.        
  18.         $bbcode [] = '/\[u\](.*)\[\/u\]/is';
  19.         $html [] = '<u>$1</u>';
  20.        
  21.         $bbcode [] = '/\[i\](.*)\[\/i\]/is';
  22.         $html [] = '<i>$1</i>';
  23.        
  24.         $bbcode [] = '/\[s\](.*)\[\/s\]/is';
  25.         $html [] = '<s>$1</s>';
  26.        
  27.         $bbcode [] = '/\[br\]/iU';
  28.         $html [] = '<br />';
  29.        
  30.         $bbcode [] = '/\[font=(?:"|\')?([\w\s-]*)(?:"|\')?\](.*)\[\/font\]/is';
  31.         $html [] = '<span style="font-family:$1;">$2</span>';
  32.        
  33.         $bbcode [] = '/\[size=(?:"|\')?([\w\s-]*)(?:"|\')?\](.*)\[\/size\]/is';
  34.         $html [] = '<span style="font-size:$1px;">$2</span>';
  35.        
  36.         $bbcode [] = '/\[url\](.*)\[\/url\]/i';
  37.         $html [] = '<a href="$1">$1</a>';
  38.        
  39.         $bbcode [] = '/\[url=(?:"|\')?(.*)(?:"|\')?\](.*)\[\/url\]/i';
  40.         $html [] = '<a href="$1">$2</a>';
  41.        
  42.         $bbcode [] = '/\[quote\]/i';
  43.         $html [] = '<div' . TITLE_DATA . '>Cita:</div><blockquote' . BOX_STYLE . '>';
  44.        
  45.         $bbcode [] = '/\[quote=(?:"|\')?([\w\s-]*)(?:"|\')?\]/is';
  46.         $html [] = '<div' . TITLE_DATA . '><b>$1</b> escribi&oacute;:</div><blockquote' . BOX_STYLE . '>';
  47.        
  48.         $bbcode [] = '/\[\/quote\]/i';
  49.         $html [] = '</blockquote>';
  50.        
  51.         $bbcode [] = '/\[color=(?:"|\')?(.*)(?:"|\')?\](.*)\[\/color\]/i';
  52.         $html [] = '<font color="$1">$2</font>';
  53.        
  54.         $bbcode [] = '/\[img\](.*)\[\/img\]/i';
  55.         $html [] = '<img src="$1" />';
  56.        
  57.         $bbcode [] = '/\[email\](.*)\[\/email\]/i';
  58.         $html [] = '<a href="mailto:$1">$1</a>';
  59.        
  60.         $bbcode [] = '/\[email=(?:"|\')?(.*)(?:"|\')?\](.*)\[\/email\]/i';
  61.         $html [] = '<a href="mailto:$1">$2</a>';
  62.        
  63.         $bbcode [] = '/\[list\](.*)\[\/list\]/is';
  64.         $html [] = '<ul>$1</ul>';
  65.        
  66.         $bbcode [] = '/\[list=1\](.*)\[\/list\]/is';
  67.         $html [] = '<ol style="list-style-type:decimal">$1</ol>';
  68.        
  69.         $bbcode [] = '/\[list=a\](.*)\[\/list\]/is';
  70.         $html [] = '<ol style="list-style-type:lower-alpha">$1</ol>';
  71.        
  72.         $bbcode [] = '/\[\*\](.*)/iU';
  73.         $html [] = '<li>$1 ';
  74.        
  75.         $bbcode [] = '/\[code\](.*)\[\/code\]/ise';
  76.         $html [] = "'<div'.TITLE_DATA.'>Codigo:</div><div'.BOX_STYLE.'>'.highlight_string(trim(stripslashes('$1')),true).'</div>'";
  77.        
  78.         $bbcode [] = '/\[align=(?:"|\')?(left|center|right){1}(?:"|\')?\](.*)\[\/align\]/is';
  79.         $html [] = '<div style="text-align:$1;">$2</div>';
  80.  
  81.         $cadena = preg_replace ( $bbcode, $html, $cadena );
  82.         return $cadena;
  83.     }
  84. }
__________________
More about me...
~ @rhyudek1
~ Github

Última edición por Hidek1; 22/02/2010 a las 14:56 Razón: Actualizada