Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Darkkz

#1
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 (php) [Seleccionar]
function str_postea($cadena1,$cadena2,$texto) {
$contador=0;
while(preg_match('/'.$cadena1.'/',$texto))
$contador++;
while(preg_match('/'.$cadena2.'/',$texto))
$contador--;
while($contador>0) {
$texto = $texto.$cadena2;
$contador--;
}
while($contador<0) {
$texto = str_replace($cadena2,"",$texto);
$contador++;
}

return $texto;
}

Código (php) [Seleccionar]
$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.