Obtengo el contenido de un archivo html:
ob_start(); include ("myFile.html"); $html = ob_get_contents(); Ahora me gustaría enviar $html como texto sin formato por correo para mostrar el código. Probé "<pre>".$html."</pre>" y "<code>".$html."</code>"
Pero no entiendo el código simple. ¿Me puedes ayudar?
Prueba algo como:
<?php $filePath = __DIR__ . '/myFile.html'; $content = file_get_contents($filePath); // Escape. $content = htmlspecialchars($content); // Makes lines visible. $content = preg_replace('/\n/', '<br>' . PHP_EOL, $content); echo $content;Tenga en cuenta que uso comillas simples para mejorar ligeramente el rendimiento, pero cuando uso comillas dobles, el patrón sería
"/\\n/"(para escapar de la barra invertida, pero debería funcionar incluso sin escapar).
Sé que Top-Master respondió esta pregunta, pero este es un método alternativo, que todavía usa include . No sabía lo suficiente sobre PHP para conocer los métodos sofisticados, que probablemente sean mucho más seguros.
La etiqueta <pre> no garantiza que los contenidos se muestren palabra por palabra. Por ejemplo, <pre><a>Hello</a></pre> aparecerá como Hola , no como <a>Hola</a>. Para solucionar esto puedes usar < (signo menos que) y &rt; (signo mayor que). Si necesita un ampersand real ("&"), puede usar &.
Esta versión modificada debe escapar <, > y &. No confíe en esto en términos de seguridad.
ob_start(); include ("myFile.html"); $html = ob_get_contents(); $html = str_replace("&", "&". $html); $html = str_replace("<", "<". $html); $html = str_replace(">", ">", $html); $html = str_replace("\n", "<br/>");Para mostrar el código HTML en el navegador, simplemente tome readfile() y configure el encabezado para Text/Plain.
<?php header('Content-Type: text/plain; charset=UTF-8'); readfile("myFile.html");Para enviar código HTML por correo electrónico, el código HTML se puede copiar desde el navegador o se puede llamar con file_get_contents(). El formato del correo electrónico debe establecerse en texto sin formato.