Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/12/2008, 10:35
jnanaki
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Hace un reemplazo con expresiones regulares

Código:
function decode_oculto($str)
{                    
	$str = preg_replace_callback("/\[oculto\]\n(.*(\n)*)\n\[\/oculto\]/i", array($this, "create_oculto"),$str);
        return $str;
}
Y la función que lo sustituye. Pero ya digo, el problema está en el replace, que no sé las expresiones que tengo que poner.

Código:
function create_oculto($matches)
{
	$oculto="<div><div class='pre-spoiler'>";
	$oculto.="<input value=\"Mostrar\" style=\"margin: 0px; padding: 0px; width: 80px; height: 18px; font-size: 10px; float: left;\" onclick=\"if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';this.innerText = ''; this.value = 'Ocultar'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.value = 'Mostrar';}\" type=\"button\">&nbsp;&nbsp;&nbsp;&nbsp; Texto oculto";
	$oculto.="</div>";
	$oculto.="<div><div class='spoiler' style='display: none;'>".$matches['1']."</div>";
	$oculto.="</div></div>";
	
	return $oculto;
}