如何在php变量中保存页面源代码?
我有一封由某些php函数生成的html电子邮件,从数据库中的几个表中收集,并以html布局进行组织。现在它都在preview.php页面中,用于测试布局,但当我需要将其发送给订阅者时,我只需要获取从该页面生成的html代码,然后在电子邮件中发送代码。我的意思是页面源,我右键单击页面,然后单击查看源时看到的页面源。那么我如何获取此页面源呢?或者将它保存到某个变量中以使用它?我觉得你想要的东西有点奇怪(为什么不将它保存到变量中而不是重复它?如何在php变量中保存页面源代码?,php,html,Php,Html,我有一封由某些php函数生成的html电子邮件,从数据库中的几个表中收集,并以html布局进行组织。现在它都在preview.php页面中,用于测试布局,但当我需要将其发送给订阅者时,我只需要获取从该页面生成的html代码,然后在电子邮件中发送代码。我的意思是页面源,我右键单击页面,然后单击查看源时看到的页面源。那么我如何获取此页面源呢?或者将它保存到某个变量中以使用它?我觉得你想要的东西有点奇怪(为什么不将它保存到变量中而不是重复它? 无论如何,请查看ob_start&functions您应该
无论如何,请查看ob_start&functions您应该使用PHP生成html,然后在回显之前将其保存在会话变量中 差不多
$html = <<<HTML
<html>
<-- Here you have the full html of the page -->
</html>
HTML;
session_start();
$_SESSION['html'] = $html;
echo $html;
选项1: 使用file_get_contents(),因为它以字符串形式返回文件:
$html=file\u get\u contents('preview.php')
整个html现在以字符串形式保存在$html
变量中
选项2:
如果您的preview.php包含一些php处理,您可以改为这样做(以便执行php代码,并且仍然得到结果html):
同样,整个html现在以字符串形式保存在
$html
变量中。正确的方法是让preview.php执行以下操作:
$html = '';
$html .= '<div>';
$html .= 'Text within div';
$html .= '</div>';
// etc
echo $html;
// Do other stuff with $html
谢谢大家!!我尝试了正确的方法,但没有成功。有些东西我没有得到,我应该在div中放什么?我不只是文本,我有php响应的表格和数据,你的意思是我应该删除html标记并直接开始我的布局。事实上,我使用了懒散的方式来使用ob_start()和ob_get_contents(),但是我很乐意用正确的方式来做!如果您只是用“$html.=”替换每个“echo”,那么您应该会发现它是有效的。如果preview.php包含其他文件,这可能会变得复杂,因为您也必须在其他文件中执行同样的操作。如果它能工作的话,用懒散的方式做也没什么问题:)
ob_end_clean();
ob_start();
include('preview.php');
$html = ob_get_contents();
ob_end_clean();
$html = '';
$html .= '<div>';
$html .= 'Text within div';
$html .= '</div>';
// etc
echo $html;
// Do other stuff with $html
ob_start();
// Make the HTML using echo
$html = ob_get_contents();
ob_end_clean();