Foros del Web » Programando para Internet » PHP »

Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de linea

Estas en el tema de Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de linea en el foro de PHP en Foros del Web. Hola, tengo que eliminar espacios de una cadena de texto html como la siguiente Código HTML: <table border= "1" summary= "Ejemplo de tabla simple con ...
  #1 (permalink)  
Antiguo 06/05/2010, 11:28
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de linea

Hola, tengo que eliminar espacios de una cadena de texto html como la siguiente
Código HTML:
<table border="1" summary="Ejemplo de tabla simple con unificaci&oacute;n de celdas de una fila.">
<tr>
<td>Campo         1          </td>
<td>Campo         2           </td>
<td>Campo                     3</td>
</tr>
<tr>
<td colspan="2">                 Campos    4           y            5                </td>
<td>     Campo        6                  </td>
</tr>
<tr>
<td>       Campo            7               </td>
<td>Campo            8                 </td>
<td>Campo                 9                        </td>
</tr>
</table> 
Necesito eliminar los espacios para de la cadena pero manteniendo la estructura que tiene el codigo,
He probado con
Cita:
echo preg_replace('/\s+/', ' ', $variable);
y elimina los espacios pero coloca todo el codigo en la misma linea,
Puedo evitar esto?
Gracias y saludos

lo que necesito hacer es eliminar los espacios que hay e
  #2 (permalink)  
Antiguo 06/05/2010, 11:30
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

Código PHP:
Ver original
  1. <?php
  2. $variable= <<<'EOT'
  3. <table border="1" summary="Ejemplo de tabla simple con unificaci&oacute;n de celdas de una fila.">
  4. <tr>
  5. <td>Campo         1          </td>
  6. <td>Campo         2           </td>
  7. <td>Campo                     3</td>
  8. </tr>
  9. <tr>
  10. <td colspan="2">                 Campos    4           y            5                </td>
  11. <td>     Campo        6                  </td>
  12. </tr>
  13. <tr>
  14. <td>       Campo            7               </td>
  15. <td>Campo            8                 </td>
  16. <td>Campo                 9                        </td>
  17. </tr>
  18. </table>
  19. EOT;
  20. echo nl2br(preg_replace('/\s+/', ' ', $variable));
  21. ?>

creo que te habia respondido ya no?
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 06/05/2010, 11:32
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

Hola
no la funcion que me pasaste cambia el salto de linea por <br>, no deja el codigo como esta y no quiero modificar el codigo
  #4 (permalink)  
Antiguo 06/05/2010, 11:34
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

Hola
no la funcion que me pasaste cambia el salto de linea por <br>, no deja el codigo como esta y no quiero modificar el codigo
  #5 (permalink)  
Antiguo 06/05/2010, 11:35
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

la funcion solo hace que el html te muestre los saltos de linea.. en realidad no es necesario si ves el codigo de fuente solo con la expresion regular salen los saltos de linea
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 06/05/2010, 11:39
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

echo nl2br(preg_replace('/\s+/', ' ',$variable)); da esto

Cita:
<table border="1" summary="Ejemplo de tabla simple con unificaci&oacute;n de celdas de una fila."> <tr> <td>Campo 1 </td> <td>Campo 2 </td> <td>Campo 3</td> </tr> <tr> <td colspan="2"> Campos 4 y 5 </td> <td> Campo 6 </td> </tr> <tr> <td> Campo 7 </td> <td>Campo 8 </td> <td>Campo 9 </td> </tr> </table>
y
echo preg_replace('/\s+/', ' ',nl2br($variable));
da esto
Cita:
<br /> <table border="1" summary="Ejemplo de tabla simple con unificaci&oacute;n de celdas de una fila."><br /> <tr><br /> <td>Campo 1 </td><br /> <td>Campo 2 </td><br /> <td>Campo 3</td><br /> </tr><br /> <tr><br /> <td colspan="2"> Campos 4 y 5 </td><br /> <td> Campo 6 </td><br /> </tr><br /> <tr><br /> <td> Campo 7 </td><br /> <td>Campo 8 </td><br /> <td>Campo 9 </td><br /> </tr><br /> </table>
  #7 (permalink)  
Antiguo 06/05/2010, 11:46
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

bueno intentalo asi entonces

Código PHP:
Ver original
  1. <?php
  2. $variable= <<<'EOT'
  3. <table border="1" summary="Ejemplo de tabla simple con unificaci&oacute;n de celdas de una fila.">
  4. <tr>
  5. <td>Campo         1          </td>
  6. <td>Campo         2           </td>
  7. <td>Campo                     3</td>
  8. </tr>
  9. <tr>
  10. <td colspan="2">                 Campos    4           y            5                </td>
  11. <td>     Campo        6                  </td>
  12. </tr>
  13. <tr>
  14. <td>       Campo            7               </td>
  15. <td>Campo            8                 </td>
  16. <td>Campo                 9                        </td>
  17. </tr>
  18. </table>
  19. EOT;
  20. echo preg_replace('(\ )+/', ' ', $variable);
  21. ?>

comenta el resultado
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 06/05/2010, 12:06
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
De acuerdo Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

Código:
echo preg_replace('/(\ )+/', ' ', $variable);
Parece que funciona,
Código:
<table border="1" summary="Ejemplo de tabla simple con unificaci&oacute;n de celdas de una fila.">
<tr>
<td>Campo 1 </td>
<td>Campo 2 </td>
<td>Campo 3</td>
</tr>
<tr>
<td colspan="2"> Campos 4 y 5 </td>
<td> Campo 6 </td>
</tr>
<tr>
<td> Campo 7 </td>
<td>Campo 8 </td>
<td>Campo 9 </td>
</tr>
</table> 

</body>

</html>
Me puedes explicar la expresion?
Muchas gracias,

Pd. Nada, nada, no entendia lo de la barra pero veo que funciona sin la barra de igual manera.
Muchas gracias y Saludos

Última edición por dokoto; 06/05/2010 a las 12:18 Razón: añadir
  #9 (permalink)  
Antiguo 06/05/2010, 12:25
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

era mas que nada para que vieras que hay un espacio ahi
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 06/05/2010, 12:27
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

Si,
Es muy simple y efectivo, Muchas gracias
Saludos
  #11 (permalink)  
Antiguo 07/05/2010, 04:41
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

Existe alguna limitacion en el tamaño de la variable?
Veo que hace el reemplazo al princio de la cadena pero no al final, es una cadena bastante larga
Saludos
  #12 (permalink)  
Antiguo 07/05/2010, 08:44
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 1 mes
Puntos: 5
Respuesta: Eliminar dos o mas espacios de una cadena de texto sin eliminar saltos de

Hola de nuevo, Parece que no era por la longitud de la cadena, Pienso que se trataba de otro tipo de tabulaciones que con el espacio no se reconocian,
Lo he solucionado de la siguiente manera:
Cita:
echo preg_replace('/(\t|\ )+/', ' ', $variable);
Saludos

Etiquetas: dos, eliminar, espacios, linea, mas, saltos, cadenas
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 04:17.