我正在寻找一种基于php文件创建纯html文件的简单有效方法。例如,在下面的template.php中,php将插入页面的各个部分。我想保存页面然后作为html删除所有的PHP代码并留下它插入的...希望这是有道理的... template.php的输出将是一个更好的方式来说我猜。
首先,我不知道这样的事情是否可行。其次,这是最好的方法吗?
在任何人开始尖叫安全之前,将在此页面中有ZERO用户提交/表单提交的变量。我的目标是使用模板从数据库值创建报告,然后用户可以以纯html的形式查看/打印/保存服务器。只有内联css没有图像。
编辑:
这个仅限html的template.php输出需要作为自己的文件保存在服务器上。 php'模板的原因'是因为我将使用php创建绝大多数页面...但我只想保存其结果输出。
template.php:
<!DOCTYPE html>
<html lang="en">
<!-- BEGIN HEAD -->
<head>
<meta charset="utf-8" />
<title><?php echo $title; ?></title>
<meta content="<?php echo $desc; ?>" name="description" />
</head>
<!-- END HEAD -->
<!-- BEGIN BODY -->
<body>
... further html with php mixed in
</body>
<!-- END BODY -->
</html>
当前解决方案:
我做了一些进一步的研究,这正是我想要的。意见/建议表示欢迎。
<?php
ob_start();
require_once('/home/test/public_html/template.php');
if ( ob_get_length() > 0 )
{
$ssReport = ob_get_contents();
file_put_contents('/home/test/public_html/test.html', $ssReport);
}
ob_end_clean();
?>
答案 0 :(得分:0)
您可以使用REGEX
(正则表达式)删除所有php代码。
表达式<\?php.*?\?>
可以为您做到这一点......
PHP-示例:
$tempateFile = file_get_contents('template.php');
$htmlPlain = preg_replace('/<\?php.*?\?>/si', '', $tempateFile);
如果您允许&#34;速记打开语法&#34;对于php文件<?
而不是<?php
,您应该使用<\?(?:php)?.*?\?>
模式preg_replace('/<\?(?:php)?.*?\?>/si', '', $tempateFile);
如果您想拍摄网站的html快照,请尝试以下选项:
wget
获取您网站的副本(请参阅wget manual或wget tutorial)curl
一个脚本来获取您网站的副本(请参阅curl manual或
curl tutorial file_get_contents($url)
获取特定公共可用URL的输出,并将其与file_put_contents(...)
一起存储到html文件中。