如何在php变量中保存页面源?

时间:2012-04-02 09:24:13

标签: php html

我有一个由某些php函数生成的html电子邮件,并从数据库中的几个表中收集并组织成一个html布局..现在它都在一个preview.php页面中用于测试布局但是当我需要时发送给订阅者,我需要获取从此页面生成的HTML代码,并将该代码发送到电子邮件中。我的意思是页面源我看到的当我右键单击页面然后单击查看源..那我怎么得到这个页面来源?或将其保存到某个变量中以使用它?

4 个答案:

答案 0 :(得分:4)

选项1:

使用file_get_contents(),因为它以字符串形式返回文件:

$html = file_get_contents('preview.php')

您的整个html现在以字符串形式保存在$html变量中。

选项2:

如果您的preview.php包含一些PHP处理,您可以改为执行此操作(以便执行PHP代码,并且仍然可以获得生成的html):

ob_end_clean();
ob_start();
include('preview.php');
$html = ob_get_contents();
ob_end_clean();

同样,您的整个html现在作为字符串保存在$html变量中。

答案 1 :(得分:2)

您应该使用PHP生成html,然后在回显之前将其保存在会话变量中。

这样的东西
$html = <<<HTML
<html>
<-- Here you have the full html of the page -->
</html>
HTML;
session_start();
$_SESSION['html'] = $html;
echo $html;

然后当您想发送电子邮件时,您只需

$message = $_SESSION['html'];

答案 2 :(得分:0)

你想要的东西对我来说有点奇怪(为什么不把它变成一个变量而不是回应呢?)
无论如何,看看ob_start&amp; ob_get_contents函数

答案 3 :(得分:0)

正确的方法是让preview.php执行此操作:

$html = '';
$html .= '<div>';
$html .= 'Text within div';
$html .= '</div>';
// etc
echo $html;
// Do other stuff with $html

但是如果你只是想要懒惰的方式,让preview.php做一个echo语句,那就这样做:

ob_start();
// Make the HTML using echo
$html = ob_get_contents();
ob_end_clean();