Самый простой способ конвертировать страницу PHP в статическую HTML-страницу

Я хочу преобразовать веб-страницы, которые в значительной степени стили CSS написаны на PHP в статическом html, чтобы я мог встроить его в электронное письмо.

Мне удалось это сделать, но для этого мне пришлось преобразовать всю страницу в строку, а затем назначить эту строку в качестве тела электронной почты. Макет страницы выглядит не так хорошо, как оригинал, поскольку я не смог внедрить CSS.

Этот подход имеет несколько проблем, как если бы какие-либо изменения были внесены в макет страницы, которую я должен переделать весь процесс для создания встраиваемой страницы.

Мне нужен более простой способ, который позволит мне визуально отображать исходную страницу в Dreamweaver.

Solutions Collecting From Web of "Самый простой способ конвертировать страницу PHP в статическую HTML-страницу"

Вы можете использовать выходные буферы. Если у вас есть 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-страницы не работают точно так же в электронных письмах, поэтому вы можете пересмотреть подход.

Это сложно сделать автоматически по нескольким причинам:

  1. Если ваша HTML-поддержка в браузерах была плохой, программы электронной почты на порядок хуже. В основном вы должны писать HTML, как это было в 1999 году, поэтому HTML 3.2 / 4.0, без CSS;
  2. У вас есть выбор, включающий изображения в качестве внешних ссылок или встраивание их непосредственно в электронную почту. Внешние ссылки занимают меньше места, но многие почтовые программы блокируют их, поскольку они используются спамерами для маркировки прямых адресов (путем создания каждого URL-адреса изображения, который они отправляют уникальным, и, таким образом, они могут выяснить, какая почта была открыта). Встроенные изображения используют несколько иной формат ссылки;
  3. Поддержка CSS должна в основном рассматриваться как неэксентирующая. Все CSS должны быть внутренними;
  4. При отправке электронной почты HTML лучше всего отправлять текстовую версию для клиентов, которые либо не имеют поддержки HTML, либо пользователь отключил ее (да, это происходит). И нет хорошего способа превратить сложную HTML-страницу в эквивалент обычного текста. В основном это нужно делать вручную; а также
  5. Содержимое электронной почты отличается от содержимого веб-страницы. Веб-страницы обычно имеют окна поиска, меню, боковые панели, верхние и нижние колонтитулы и т. Д. Это все, что вам не интересно в электронной почте. Вас интересует только содержание страницы. Поэтому блоги работают достаточно хорошо, потому что содержимое сообщения в блоге можно легко извлечь. Это сложнее с произвольными страницами.

Таким образом, существует множество способов сделать это, например, используя 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