Я хочу преобразовать веб-страницы, которые в значительной степени стили CSS написаны на PHP в статическом html, чтобы я мог встроить его в электронное письмо.
Мне удалось это сделать, но для этого мне пришлось преобразовать всю страницу в строку, а затем назначить эту строку в качестве тела электронной почты. Макет страницы выглядит не так хорошо, как оригинал, поскольку я не смог внедрить CSS.
Этот подход имеет несколько проблем, как если бы какие-либо изменения были внесены в макет страницы, которую я должен переделать весь процесс для создания встраиваемой страницы.
Мне нужен более простой способ, который позволит мне визуально отображать исходную страницу в Dreamweaver.
Вы можете использовать выходные буферы. Если у вас есть html-страница, например:
<html> <head> <title>Blah</title> </head> <body> Some text here </body> </html>
Затем, если вы положили в верхней части html-файла:
<?php ob_start(); ?>
И прямо внизу, после последнего тега, поставьте:
<?php $string = ob_get_contents(); //do whatever you need to do to the html, save it to a seperate file, email it, etc ob_flush(); ?>
Это в основном означает, что переменная $ string будет содержать весь статический html страницы после ее динамического создания. Затем вы можете использовать эту строку в письме. Хотя действительно, html-страницы не работают точно так же в электронных письмах, поэтому вы можете пересмотреть подход.
Это сложно сделать автоматически по нескольким причинам:
Таким образом, существует множество способов сделать это, например, используя cURL для получения веб-страницы, используя буферизацию вывода для захвата страницы с помощью require / include и т. Д., Но все эти методы страдают одной или несколькими из вышеперечисленных проблем. Я вообще нашел, что единственный способ сделать HTML-письмо – это рулон.
просто сделайте это на php-странице
Поместите это сверху, где вы хотите начать сбор результатов:
ob_start ();
поместите это на дно php
$ HtmlCode = ob_get_contents (); ob_end_flush ();
$ ФХ = Еореп ( 'index.html', 'W'); FWRITE ($ ФХ, $ HtmlCode);
fclose ($ ФХ);
затем перенаправить на страницу html
просто сделайте это на php-странице
Поместите это сверху, где вы хотите начать сбор результатов:
поместите это на дно php
$ HtmlCode = ob_get_contents (); ob_end_flush ();
$ ФХ = Еореп ( 'index.html', 'W'); FWRITE ($ ФХ, $ HtmlCode);
fclose ($ ФХ);
?> затем перенаправить на страницу html