Domanda

Sto usando una funzione JavaScript che riceve un codice html che è stato incluso con php. Non è HTML in una stringa PHP, ma un file html con estensione .php.

Mentre il codice html viene inviato come parametro per i js funzione non può contenere ritorni a capo. Il problema è che la scrittura grandi blocchi di codice HTML in una sola riga è terribile, vorrei avere solo una funzione per cancellare i ritorni a capo prima di inviare il contenuto.

C'è una fonte per una tale funzione?

Grazie!

È stato utile?

Soluzione

semplice

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

Altri suggerimenti

Quando si dice "in un file PHP", suppongo che voi dire che stai include()ing un file che sembra qualcosa di simile:

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

Se questo è il caso, quello che stai cercando si chiama Uscita di controllo , che consente a uno impedire che i dati vengano inviati finché non si è pronti o catturare in una stringa per ulteriori elaborazioni. Per mettere a nudo i ritorni a capo da un file incluso, si può fare questo:

<?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

Se si desidera rimuovere a capo pure, cambiare quella ultima riga a:

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

di "costruirlo in PHP" Presumo che significa che si sta costruendo una stringa che contiene il relativo codice HTML.

Se questo è il caso, allora si tratta di una semplice questione di non avere i ritorni a capo come una parte della stringa.

.

cioè, non fare questo:

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

, ma piuttosto fare questo

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

Certo, si potrebbe utilizzare una funzione String.Replace, ma la costruzione di via concats significa che si arriva a saltare questo passo.

Si consiglia di utilizzare un scrittore XML per questo, se è questo che Javascript analizza. In questo modo il risultato sarà sempre valido e il codice dovrebbe ottenere più pulito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top