从php'模板'创建并保存纯HTML文件?

时间:2014-04-10 02:52:55

标签: php html

我正在寻找一种基于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();             

?>

1 个答案:

答案 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快照,请尝试以下选项:

  1. 使用wget获取您网站的副本(请参阅wget manualwget tutorial
  2. 使用curl一个脚本来获取您网站的副本(请参阅curl manual curl tutorial
  3. 制作一个php脚本,使用file_get_contents($url)获取特定公共可用URL的输出,并将其与file_put_contents(...)一起存储到html文件中。