Foros del Web » Programando para Internet » PHP »

como escriir espacios (2)

Estas en el tema de como escriir espacios (2) en el foro de PHP en Foros del Web. A ver me explico bien que me he explicado mal... Tengo un par de funciones que escriben el codigo de <div id="xxx"> y </div id="xxx"> ...
  #1 (permalink)  
Antiguo 08/04/2008, 02:11
 
Fecha de Ingreso: febrero-2007
Mensajes: 134
Antigüedad: 17 años, 1 mes
Puntos: 2
como escriir espacios (2)

A ver me explico bien que me he explicado mal...

Tengo un par de funciones que escriben el codigo de <div id="xxx"> y </div id="xxx">

el problema es que quiero que salgan bien tabuladas y posicionadas cuando doy Ctrl-U al firefox o saco el codigo fuente en IE, para lo cual escribo antes espacios...pero no me salen bien escritos...


conoce alguien alguna forma de hacerlo para que quedan bien?

Aqui va el codigo... Por cierto tiene una correcion con respecto al que he puesto antes un fallo en cierracapa


<?
// (C) Josu Udaondo 1.01 Control de Capas
$aPilas = array();
$espacios = 0;


function AbreCapa($nombre, $tipo = '', $log=false)
{
global $aPilas , $espacios;
array_push($aPilas,$nombre);
if ($log==TRUE) echo "CAPA:".$nombre.' <br>';
echo str_repeat(chr(32),$espacios*2).'<div id="'.$nombre;
if ($tipo !='') echo 'class="'.$tipo.'"';
echo '">'.chr(13).chr(10);
$espacios= $espacios+1;
return $aPilas;
}

Function CierraCapa($a, $texto=false)
{
global $aPilas , $espacios;
if(count($aPilas)>0)
{
$espacios = $espacios-1;
$nombre = array_pop($aPilas);
echo str_repeat(chr(32),$espacios*2).'</div id="'.$nombre.'">'.chr(13).chr(10);
}else echo 'No se pueden cerrar mas capas '.$nombre;
if ($texto==TRUE) CapaActual();
return $aPilas;
}

Function CapaActual($texto = TRUE)
{
global $aPilas , $espacios;
$numero = count($aPilas);
if ($texto) echo $aPilas[$numero-1];
return $aPilas[$numero-1];
}

Function Capas()
{
return $aPilas;
}

?>
  #2 (permalink)  
Antiguo 08/04/2008, 05:08
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Pregunta Re: como escriir espacios (2)

Este tema ya se viene tratando aquí:
http://www.forosdelweb.com/f18/como-...pacios-573309/

Por qué iniciaste un nuevo tema?

Otra cosa, estuve leyendo lo que pusiste arriba:

Cita:
Tengo un par de funciones que escriben el codigo de <div id="xxx"> y </div id="xxx">
y te comento que cuando cierras una capa (div) no es necesario poner un id. El id se especifica sólo cuando abres la capa no cuando la cierras.

Así sería la manera correcta:

<div id="xxx"> ... </div>

Ademas... te insisto nuevamente, veo que ahora en vez de usar el espacio así " " estas usando chr(32).
Pero chr(32) te devuelev un " ", estamos en la misma.
Si te fijas en el "código de fuente" de tu script seguramente podras ver los espacios bien escritos. El código funciona.

Pero cuando los exploradores web "interpretan" el código html, solo te reconocen un solo espacio de todos los que hay.

Entonces te insisto que la única manera de que un exploirador web te respete los espacios arajatabla es usando "&nbsp;" que si bien se va a "leer" en el código de fuente de la web, en la vista normar el explorador web lo va a interpretar como un espacio y lo va a respetar.

Pero por lo que leo te interesa mucho cómo se ve en el código de fuentes las tabulaciones, ahi si vas a vaer los espacios y será cuestión de pasar a nuevas lineas utilizando "\n".

Por ejemplo, si usas en el html esto:

echo "<table><tr><td>Hola Mundo!</td></tr></table>";

da lo mismo que:

echo "<table>\n<tr>\n<td>\nHola Mundo!\n</td>\n</tr>\n</table>";

Si bien en esa página se va a ver lo mismo, cuando vayas al código de fuente en el primer caso vas a ver:

<table><tr><td>Hola Mundo!</td></tr></table>

Pero en el segundo caso vas a ver:

<table>
&nbsp;<tr>
<td>
Hola Mundo!
</td>
</tr>
</table>

Ya está un poco más ordenado el código de fuente, perop vamos a ordenarlo mejor.
Además de usar \n (nueva linea en el código de fuente) usemos \t (tabulación en el código de fuente):

echo "<table>\n\t<tr>\n\t\t<td>\n\t\t\tHola Mundo!\n\t\t</td>\n\t</tr>\n</table>";

Entoncea ahora nuestro código de fuente quedará mas bonito (pero no tendrá efecto en la vista normal). Quedaría así:

<table>
<tr>
<td>
Hola Mundo!
</td>
</tr>
</table>
NOTA: el editor me borra los espacios aquí, pero este código quedaría bien tabulado (ramificado) cada linea un poco mas a la derecha. Pruébalo!

Saludos

PD: otros caracteres especiales:
\n Nueva línea
\r Retorno de carro
\t Tabulación horizontal
\\ Barra invertida

Última edición por usermax; 08/04/2008 a las 05:32
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:30.