Can';是否使用PHP将输出渲染到屏幕?
我有下面的场景 我有一个PHP网站,其中包含大约3个动态内容的网页。我想将此内容呈现为静态内容,并呈现到另一个文件中。例如,contact.php->contact.html 我的代码如下所示Can';是否使用PHP将输出渲染到屏幕?,php,Php,我有下面的场景 我有一个PHP网站,其中包含大约3个动态内容的网页。我想将此内容呈现为静态内容,并呈现到另一个文件中。例如,contact.php->contact.html 我的代码如下所示 ob_start(); $content = require_once 'contact.php'; ob_end_flush(); file_put_contents("contact.html", $content); 不知何故,这是行不通的;-?(require_once()不返回脚本输出的内容。
ob_start();
$content = require_once 'contact.php';
ob_end_flush();
file_put_contents("contact.html", $content);
不知何故,这是行不通的;-?(require_once()不返回脚本输出的内容。您需要获取存储在输出缓冲区中的脚本输出:
ob_start();
require_once('contact.php');
$content = ob_get_clean();
file_put_contents('contact.html', $content);
ob\u get\u clean():
获取当前缓冲区内容,然后重试
删除当前输出缓冲区
ob_get_clean()基本上执行
ob_get_contents()和
ob_end_clean()
require\u一旦
打开文件并尝试将其作为PHP解析。它不会返回其输出。您可能正在查找以下内容:
<?php
ob_start();
require_once('file.php');
$content = ob_get_contents();
ob_end_flush();
// etc...
?>
通过这种方式,脚本将数据存储在$content中并将其转储到标准输出。如果只希望填充$content,请使用ob\u end\u clean()
而不是ob\u end\u flush()
签出ob\u get\u flush()
基本上试着去做
if(!is_file("contact.html")){
ob_start();
require_once 'contact.php';
$content = ob_get_flush();
file_put_contents("contact.html", $content);
}else{
echo file_gut_contents("contact.html");
}
这将缓冲来自
contact.php
的输出,并在需要时将其转储。为什么不让浏览器尝试加载contact.php
?
if(!is_file("contact.html")){
ob_start();
require_once 'contact.php';
$content = ob_get_flush();
file_put_contents("contact.html", $content);
}else{
echo file_gut_contents("contact.html");
}