Pregunta

Estoy usando una función javascript que recibe algo de código HTML que se incluye el uso de php. No es el HTML de una cadena PHP, pero un archivo html con extensión .php.

Como el código html se envía como un parámetro a los js función de TI no puede contener retornos de carro. El problema es que la escritura de grandes bloques de HTML en una sola línea es terrible, me gustaría tener una función única para borrar los retornos de carro antes de enviar el contenido.

¿Hay una fuente para tal función?

Gracias!

¿Fue útil?

Solución

sencilla

echo str_replace(array("\r\n", "\r", "\n"), null, $htmlCode);

Otros consejos

Cuando se dice "en un archivo PHP", supongo que te refieres que estés include()ing un archivo que es como la siguiente:

<html>
  <head><title>Foo</title></head>
  <body>
    <?php do_stuff(); ?>
  </body>
</html>

Si ese es el caso, lo que está buscando se llama Control de Salida , que le permite ya sea para prevenir el envío de datos hasta que esté listo o captura en una cadena para su procesamiento adicional. Para despojar a los retornos de carro a partir de un archivo incluido, usted puede hacer esto:

<?php

ob_start();                       // start buffering output
include("foo.php");               // include your file
$foo = ob_get_contents();         // get a copy of the buffer's contents
ob_clean_end();                   // discard the buffer and turn off buffering
echo str_replace("\r", "", $foo); // print output w/o carriage returns

Si desea eliminar los saltos de línea, así, cambiar la última línea a:

echo str_replace(array("\n", "\r"), "", $foo);

"construyendo en PHP" Asumo que quiere decir que usted está construyendo una cadena que contiene el código HTML correspondiente.

Si ese es el caso, entonces es una simple cuestión de no tener los retornos de carro como parte de su cadena.

.

es decir, no hacer esto:

foo =  "  this is my string
         and I have it on two lines"; 

sino más bien hacer esto

foo = "" .
      " this is my string" .
      " and it's on one line ";

Claro, usted podría utilizar una función String.Replace, pero la construcción a través de concats significa que se llega a saltarse este paso.

Considere el uso de un escritor XML para esto, si eso es lo javascript analiza. De esta forma el resultado siempre será válida, y el código debe recibir más limpio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top