将PHP页面转换为静态HTML页面的最简单方法

时间:2009-05-30 09:50:19

标签: php html email xhtml static

我想将用CSS编写的大量网页转换为静态HTML,以便我可以将其嵌入到电子邮件中。

我已设法做到这一点,但为了实现这一点,我必须将整个页面转换为字符串,然后将该字符串指定为电子邮件正文。页面的布局看起来不像原来那样好,因为我还没有嵌入CSS。

这种方法存在一些问题,例如,如果必须对页面布局进行任何更改,我必须重做生成可嵌入页面的整个过程。

我想要一种更简单的方法,这样我就可以在Dreamweaver中直观地保存原始页面。

4 个答案:

答案 0 :(得分:12)

您可以使用输出缓冲区。如果你有一个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 :(得分:1)

由于以下几个原因,这是一项很难自动完成的事情:

  1. 如果您认为浏览器中的HTML支持很糟糕,那么电子邮件程序就会变得更糟。基本上你应该写像1999年的HTML,所以HTML 3.2 / 4.0,没有CSS;
  2. 您可以选择将图片包含为外部链接,也可以直接将其嵌入电子邮件中。外部链接占用的空间较少,但许多邮件程序阻止它们,因为它们被垃圾邮件发送者用来标记实时地址(通过使每个图像URL发送的唯一性,因此他们可以找出打开的电子邮件)。嵌入式图像使用略有不同的参考格式;
  3. CSS支持基本上应该被视为不存在。所有CSS必须是内部的;
  4. 最佳做法是,在发送HTML电子邮件时,还要为没有HTML支持或用户已禁用HTML的客户端发送纯文本版本(是的,这确实发生了)。并没有很好的方法将复杂的HTML页面转换为纯文本等价物。它基本上必须手工完成;和
  5. 电子邮件内容与网页内容不同。网页通常包含搜索框,菜单,侧边栏,页眉,页脚等。这些都是您对发送电子邮件不感兴趣的内容。您只对页面内容感兴趣。因此博客的效果非常好,因为可以轻松提取博客文章的内容。任意页面都比较难。
  6. 因此,有多种方法可以实现此目的,例如使用cURL获取网页,使用输出缓冲来使用require / include等捕获页面,但所有这些方法都会遇到上述一个或多个问题。我一般都发现HTML电子邮件的唯一方法就是手动滚动它。

答案 2 :(得分:1)

在php页面中执行此操作

将它放在您想要开始捕获输出的位置:

ob_start();

把它放在php的底部

$ HtmlCode = ob_get_contents(); ob_end_flush()函数;

$ FH =的fopen( 'index.html的', 'W'); 的fwrite($跳频,$ HtmlCode);

FCLOSE($ FH);

然后重定向到html页面

答案 3 :(得分:-1)

在php页面中执行此操作

将它放在您想要开始捕获输出的位置:

把它放在php的底部

$ HtmlCode = ob_get_contents(); ob_end_flush()函数;

$ FH =的fopen(&#39;的index.html&#39;&#39; W&#39); 的fwrite($跳频,$ HtmlCode);

FCLOSE($ FH);

&GT?; 然后重定向到html页面