elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Ayuda BBCode
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda BBCode  (Leído 1,672 veces)
naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Ayuda BBCode
« en: 14 Agosto 2008, 03:34 am »

Buenas estoy haciendo una funcion para implementar bbcode, esto es lo que llevo:

Código
  1. <?php
  2. function bbcode($str){
  3. $str = htmlentities($str);
  4. $str = str_replace("<", "&lt;", $str);
  5. $str = str_replace(">", "&gt;", $str);
  6. $str = preg_replace('/\[b\](.*?)\[\/b\]/is', '<b>$1</b>', $str);
  7. $str = preg_replace('/\[i\](.*?)\[\/i\]/is', '<i>$1</i>', $str);
  8. $str = preg_replace('/\[u\](.*?)\[\/u\]/is', '<u>$1</u>', $str);
  9. $str = preg_replace('/\[url\](.*?)\[\/url\]/is', '<a href="$1" target="_blank">$1</a>', $str);
  10. $str = preg_replace('/\[url\=(.*?)\](.*?)\[\/url\]/is', '<a href="$1" target="_blank">$2</a>', $str);
  11. $str = preg_replace('/\[img\](.*?)\[\/img\]/is', '<div id="imagen"><img src="$1" border="0" /></div>', $str);
  12. $str = preg_replace('/\[quote\=(.*?)\](.*?)\[\/quote\]/is', '<b>$1 dijo:</b><br /><div id="codigo"><code>$2</code></div>', $str);
  13. $str = preg_replace('/\[color\=(.*?)\](.*?)\[\/color\]/is', '<span style="color:$1">$2</span>', $str);
  14. $str = preg_replace('/\[size\=(.*?)\](.*?)\[\/size\]/is', '<font size="$1">$2</font>', $str);
  15. $str = preg_replace('/\[list\](.*?)\[\/list\]/is', '<ul>$1</ul>', $str);
  16. $str = preg_replace('/\[li\](.*?)\[\/li\]/is', '<li>$1</li>', $str);
  17. $str = str_replace("<ul><br />", "<ul>", $str);
  18. $str = str_replace("</li><br />", "</li>", $str);
  19. $str = preg_replace('/\[code\](.*?)\[\/code\]/is', '<b>Código:</b><br /><div id="codigo"><code>$1</code></div>', $str);
  20. $str = nl2br($str);
  21. return $str;
  22.  
  23. }
  24. ?>
  25.  

La cuestion es en la etiqueta code quiero que si se pone dentro de ella la etiqueta [ b ] no se ponga en negrita ni nada, no se si me explico.

Gracias.


En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Ayuda BBCode
« Respuesta #1 en: 19 Agosto 2008, 21:05 pm »

Buenas estoy haciendo una funcion para implementar bbcode, esto es lo que llevo:

Código
  1. <?php
  2. function bbcode($str){
  3. $str = htmlentities($str);
  4. $str = str_replace("<", "&lt;", $str);
  5. $str = str_replace(">", "&gt;", $str);
  6. $str = preg_replace('/\[b\](.*?)\[\/b\]/is', '<b>$1</b>', $str);
  7. $str = preg_replace('/\[i\](.*?)\[\/i\]/is', '<i>$1</i>', $str);
  8. $str = preg_replace('/\[u\](.*?)\[\/u\]/is', '<u>$1</u>', $str);
  9. $str = preg_replace('/\[url\](.*?)\[\/url\]/is', '<a href="$1" target="_blank">$1</a>', $str);
  10. $str = preg_replace('/\[url\=(.*?)\](.*?)\[\/url\]/is', '<a href="$1" target="_blank">$2</a>', $str);
  11. $str = preg_replace('/\[img\](.*?)\[\/img\]/is', '<div id="imagen"><img src="$1" border="0" /></div>', $str);
  12. $str = preg_replace('/\[quote\=(.*?)\](.*?)\[\/quote\]/is', '<b>$1 dijo:</b><br /><div id="codigo"><code>$2</code></div>', $str);
  13. $str = preg_replace('/\[color\=(.*?)\](.*?)\[\/color\]/is', '<span style="color:$1">$2</span>', $str);
  14. $str = preg_replace('/\[size\=(.*?)\](.*?)\[\/size\]/is', '<font size="$1">$2</font>', $str);
  15. $str = preg_replace('/\[list\](.*?)\[\/list\]/is', '<ul>$1</ul>', $str);
  16. $str = preg_replace('/\[li\](.*?)\[\/li\]/is', '<li>$1</li>', $str);
  17. $str = str_replace("<ul><br />", "<ul>", $str);
  18. $str = str_replace("</li><br />", "</li>", $str);
  19. $str = preg_replace('/\[code\](.*?)\[\/code\]/is', '<b>Código:</b><br /><div id="codigo"><code>$1</code></div>', $str);
  20. $str = nl2br($str);
  21. return $str;
  22.  
  23. }
  24. ?>
  25.  

Cambia el orden como vas haciendo tu BBCode, primero pon el preg_replace() de la estiqueda de CODE, y cuando la insetes en el STR insertala asi: htmlentities( $1, ENT_QUOTES ); y listo....



La cuestion es en la etiqueta code quiero que si se pone dentro de ella la etiqueta [ b ] no se ponga en negrita ni nada, no se si me explico.

Gracias.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con el editor bbcode de SMF
Desarrollo Web
Graphixx 7 4,754 Último mensaje 31 Marzo 2011, 22:32 pm
por el-brujo
BBCode No se ven SMF
Desarrollo Web
ranslsad 4 3,080 Último mensaje 20 Julio 2012, 15:24 pm
por ranslsad
¿Click'n'Load 2 JDownloader cifrar es AES php en bbcode ejemplos ?
PHP
Weeken 0 2,857 Último mensaje 6 Mayo 2013, 16:33 pm
por Weeken
No me funciona el BBcode « 1 2 »
Sugerencias y dudas sobre el Foro
simorg 17 7,858 Último mensaje 23 Octubre 2014, 17:41 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines