come eliminare i ritorni a capo in HTML con PHP?
-
09-09-2019 - |
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!
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.
E 'un semplice sostituzione di stringhe .
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.