39 votes

Supprimer tous les sauts de ligne de la source HTML

Eh bien, je sais que l’obscurcissement est une mauvaise idée. Mais je veux que tout mon code HTML vienne en une seule ligne longue. Tous les tags HTML sont générés via PHP, donc je pense que c'est possible. Je savais qu'il fallait remplacer \n\r par l'expression régulière, mais je ne sais pas comment faire cela. Au cas où je ne suis pas clair voici un exemple

 $output = '<p>
              <div class="title">Hello</div>
           </p>';
echo $output;
 

Pour être visualisé dans le visualiseur source en tant que <p><div class="title">Hello</div></p>

46voto

seriousdev Points 2894

Peut être ça?

 $output = str_replace(array("\r\n", "\r"), "\n", $output);
$lines = explode("\n", $output);
$new_lines = array();

foreach ($lines as $i => $line) {
    if(!empty($line))
        $new_lines[] = trim($line);
}
echo implode($new_lines);
 

34voto

Svish Points 32303

Vous pouvez essayer ceci peut-être.

 // Before any output
ob_start();

// End of file
$output = ob_get_flush();
echo preg_replace('/^\s+|\n|\r|\s+$/m', '', $output);
 

Cela devrait, sauf si je me suis trompé dans l'expression régulière, intercepter toutes les sorties, puis remplacer tous les caractères de nouvelle ligne ainsi que tous les espaces à la fin et au début des lignes.

Si vous avez déjà collecté toutes les sorties dans une variable, vous pouvez bien sûr simplement utiliser la dernière ligne directement et ignorer le travail de mise en mémoire tampon de la sortie :)

14voto

Ray L Points 2168

Travaillé pour moi:

 $output = str_replace(array("\r\n", "\r", "\n"), "", $output);
 

5voto

krtek Points 15497

Tu peux faire :

 $output = '<p>'.
              '<div class="title">Hello</div>'.
           '</p>';
 

De cette façon, $output ne contiendra aucun saut de ligne.

Cela devrait également fonctionner:

 $output = preg_replace(array('/\r/', '/\n/'), '', $output);
 

3voto

ling Points 177
$output = preg_replace('!\s+!m', ' ', $output);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X