Foros del Web » Programando para Internet » PHP »

Eliminar espacios entre tags

Estas en el tema de Eliminar espacios entre tags en el foro de PHP en Foros del Web. Hola, quiero optimizar un poco la salida de código de mi web y quiero eliminar todos los espacios en blanco, tabulaciones y saltos de linea ...
  #1 (permalink)  
Antiguo 08/04/2011, 00:35
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Eliminar espacios entre tags

Hola, quiero optimizar un poco la salida de código de mi web y quiero eliminar todos los espacios en blanco, tabulaciones y saltos de linea que hayan entre un tag y el siguiente carácter de texto o símbolo, de esta forma elimino los saltos de linea entre tags y contenidos y tags vacios.

El problema es que no se de expresiones regulares xD alguien me podría ayudar con preg en php por favor?

Código PHP:
$example '
    <div class="test">
        <div
            class="test2"
            id="test2"
            name="test2"
            onclick="test2();">
                <img src="icono" /> Prueba uno dos tres
        </div>
        <div class="clean">
        </div>
    </div>
'

la idea es que pueda quedar algo así:
Cita:
$example = '<div class="test"><div class="test2" id="test2" name="test2" onclick="test2();"><img src="icono" /> Prueba uno dos tres</div><div class="clean"></div></div>';
notese el espacio en blanco entre el tag img y el texto.
he tratado de escribir masomenos como puede hacerse pero no se bien como hacer todo esto .

muchas gracias de antemano al que pueda ayudarme.
  #2 (permalink)  
Antiguo 08/04/2011, 06:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Eliminar espacios entre tags

Podrías hacerlo así
Código PHP:
Ver original
  1. <?php
  2. $example = '
  3.    <div class="test">
  4.        <div
  5.            class="test2"
  6.            id="test2"
  7.            name="test2"
  8.            onclick="test2();">
  9.                <img src="icono" /> Prueba uno dos tres
  10.        </div>
  11.        <div class="clean">
  12.        </div>
  13.    </div>
  14. ';
  15. echo nl2br(htmlentities($example)) . '<br />';
  16. echo nl2br(htmlentities(preg_replace('/\s+(<.*?>)\s+|[\r\n]/is', '$1', $example)));
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/04/2011, 15:51
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Eliminar espacios entre tags

Muchas gracias, me ha servido de lujo.

Un solo detalle, puedes omitir algunos tags como plaintext y pre?

otra cosa, se podrían eliminar los tags de comentarios html sin tocar los
<!--[if IE 6]> <![endif]-->
<!--[if IE]> <![endif]-->
<!--[else]> <![endif]-->

etc etc? talves solo sabiendo que comienzan con <!--[ y terminan en ]-->

con eso ya podré incluirlo en mi sistema web.
muchisimas gracias por tu ayuda.

Última edición por a98998; 08/04/2011 a las 15:57
  #4 (permalink)  
Antiguo 08/04/2011, 16:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Eliminar espacios entre tags

Te di un ejemplo para que puedas comenzar. Te recomiendo que leas sobre expresiones regulares. Pasa por el área de aportes para que veas un tema que te puede ayudar usando el PCRE.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 09/04/2011, 15:37
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Eliminar espacios entre tags

Muchas gracias, buscaré sobre el tema. desde hace ya casi 3 años que me ha costado aprender expresiones regulares, siempre leo cuando necesito algo pero cuando no me resultan las expresiones o me dan error prefiero preguntar como se hace.

Etiquetas: espacios, tags
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 01:14.