Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php变量中保存页面源代码?_Php_Html - Fatal编程技术网

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

如何在php变量中保存页面源代码?,php,html,Php,Html,我有一封由某些php函数生成的html电子邮件,从数据库中的几个表中收集,并以html布局进行组织。现在它都在preview.php页面中,用于测试布局,但当我需要将其发送给订阅者时,我只需要获取从该页面生成的html代码,然后在电子邮件中发送代码。我的意思是页面源,我右键单击页面,然后单击查看源时看到的页面源。那么我如何获取此页面源呢?或者将它保存到某个变量中以使用它?我觉得你想要的东西有点奇怪(为什么不将它保存到变量中而不是重复它? 无论如何,请查看ob_start&functions您应该

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

我觉得你想要的东西有点奇怪(为什么不将它保存到变量中而不是重复它?

无论如何,请查看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();