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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: [1]
1  Programación / PHP / Re: Duda: Crear una pila contando palabras encontradas en un string en: 10 Septiembre 2011, 23:35 pm
Mira si esto te sirve, es el BBCode Parser que viene con el editor Markitup.

Código
  1. <?php
  2.        // BBCode to find...
  3.        $in = array(     '/\[b\](.*?)\[\/b\]/ms',      
  4.                                         '/\[i\](.*?)\[\/i\]/ms',
  5.                                         '/\[u\](.*?)\[\/u\]/ms',
  6.                                         '/\[img\](.*?)\[\/img\]/ms',
  7.                                         '/\[email\](.*?)\[\/email\]/ms',
  8.                                         '/\[url\="?(.*?)"?\](.*?)\[\/url\]/ms',
  9.                                         '/\[size\="?(.*?)"?\](.*?)\[\/size\]/ms',
  10.                                         '/\[color\="?(.*?)"?\](.*?)\[\/color\]/ms',
  11.                                         '/\[quote](.*?)\[\/quote\]/ms',
  12.                                         '/\[list\=(.*?)\](.*?)\[\/list\]/ms',
  13.                                         '/\[list\](.*?)\[\/list\]/ms',
  14.                                         '/\[\*\]\s?(.*?)\n/ms'
  15.        );
  16.        // And replace them by...
  17.        $out = array(    '<strong>\1</strong>',
  18.                                         '<em>\1</em>',
  19.                                         '<u>\1</u>',
  20.                                         '<img src="\1" alt="\1" />',
  21.                                         '<a href="mailto:\1">\1</a>',
  22.                                         '<a href="\1">\2</a>',
  23.                                         '<span style="font-size:\1%">\2</span>',
  24.                                         '<span style="color:\1">\2</span>',
  25.                                         '<blockquote>\1</blockquote>',
  26.                                         '<ol start="\1">\2</ol>',
  27.                                         '<ul>\1</ul>',
  28.                                         '<li>\1</li>'
  29.        );
  30.        $text = preg_replace($in, $out, $text);
  31. ?>
  32.  
  33.  

Con este sistema no tengo que hacer el follón del contador. Es más simple de lo que pensaba :-*

Resuelto, ¡Muchas gracias!
2  Programación / PHP / Duda: Crear una pila contando palabras encontradas en un string en: 10 Septiembre 2011, 16:33 pm
Hola, he utilizado el buscador y no he encontrado mi duda.

Estoy tratando de hacer a mano una comprobación de tags de BBCode, que compruebe que las etiquetas abiertas de cada tipo estén luego cerradas.
He intentado utilizar tanto eregi() como preg_match(), pero no consigo utilizarlas correctamente. Según he oído eregi() está deprecated.

Sería algo así:

Código
  1. function str_postea($cadena1,$cadena2,$texto) {
  2. $contador=0;
  3. while(preg_match('/'.$cadena1.'/',$texto))
  4. $contador++;
  5. while(preg_match('/'.$cadena2.'/',$texto))
  6. $contador--;
  7. while($contador>0) {
  8. $texto = $texto.$cadena2;
  9. $contador--;
  10. }
  11. while($contador<0) {
  12. $texto = str_replace($cadena2,"",$texto);
  13. $contador++;
  14. }
  15.  
  16. return $texto;
  17. }
Código
  1. $texto = str_postea("[b]","[/b]",$texto);

El problema es que los primeros while de la función son infinitos, pues si existe la cadena, existe siempre. ¿Alguna idea de cómo podría arreglarlo?

Gracias.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines