我想将用CSS编写的大量网页转换为静态HTML,以便我可以将其嵌入到电子邮件中。
我已设法做到这一点,但为了实现这一点,我必须将整个页面转换为字符串,然后将该字符串指定为电子邮件正文。页面的布局看起来不像原来那样好,因为我还没有嵌入CSS。
这种方法存在一些问题,例如,如果必须对页面布局进行任何更改,我必须重做生成可嵌入页面的整个过程。
我想要一种更简单的方法,这样我就可以在Dreamweaver中直观地保存原始页面。
答案 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)
由于以下几个原因,这是一项很难自动完成的事情:
因此,有多种方法可以实现此目的,例如使用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页面