Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/06/2005, 16:57
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Si, creo que voy avanzando..

Código PHP:
/* coge las tabulaciones \t y las formatea a HTML    */
function lasTabulaciones($codigo2) {
    
$hay2=preg_match_all('/(\t){1,}((.|\s)+?)\r/i',$codigo2,$resultado2);
    if(!
$hay2) return $codigo2." NADA";
    else {
        for(
$j=0$j<count($resultado2[2]); $j++) {    //por cada tabulacion
            
$HTML2="<span style='padding-left:25px;'>".$resultado2[2][$j]."</span>";
            
$codigo2=str_replace($resultado2[0][$j], $HTML2$codigo2);
        }
        return 
$codigo2;
    }
}

/* se encarga de coger el [code][/code] y formatearlo */
function elCode ($codigo) {
    
$hay preg_match_all ('/\\[(code)\\]((.|\s)+?)\\[\\/\\1\\]/i'$codigo$resultado); 
    if (!
$hay
        return 
$codigo;
    for(
$i=0$i<count($resultado[1]); $i++) {  // por cada code 
        //$resultado[2][$i]=ereg_replace('\t(((.|\s)+)?)', "<span style='padding-left:25px;'>$1</span>" , $resultado[2][$i]);    //tabulaciones
        
$resultado[2][$i]=lasTabulaciones($resultado[2][$i]);
        
$HTML '<div class="code">'.nl2br($resultado[2][$i]).'</div>';
        
$codigo str_replace ($resultado[0][$i], $HTML ,$codigo); 
    } 
    return 
$codigo;

La funcion lasTabulaciones es muy parecida a elCode, solo que lasTabulaciones se encaga de las lineas que empiezan por tabulacion y acaban en salto de linea (las identadas).

Para una tabulacion funciona bien.
Para dos tabulaciones en la misma linea..mm.. quedan omitidas a partir de la segunda.

He intentado hacer algo recursivo, pero no me ha salido nada de lo que he probado... me parece.. demasiado locura.

¿A alguien se le ocurre algo?
Lo que quiero hacer es que:
tantos "\t" como encuentre antes de "texto" lo sustituya por "<span style='padding-left:25px;'>". Despues claro, debe cerrar los span abiertos. (metiendo antes de cerrarlos el "texto". Algo complicado?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.