10

目前我有一个这样的文件

<?php
if(some condition)
{
    //Dont allow access
}
else
{
    echo "<html>My HTML Code</html>";
}
?>

但我想做这样的事情来保持我的 php 文件简短而干净。

<?php
if(some condition)
{
    //Dont allow access
}
else
{
    //print the code from ..html/myFile.html
}
?>

我怎样才能做到这一点?

4

8 回答 8

17

将您的 html 内容保存为单独的模板并简单地包含它

<?php
if(some condition)
{
    //Dont allow access
}
else
{
    include ("your_file.html");
}
?>

或者

<?php
if(some condition)
{
    //Dont allow access
}
else
{
    readfile("your_file.html");
}
?>

readfilefile_get_contents

于 2013-03-07T11:45:18.883 回答
12

您可以看看PHP Simple HTML DOM Parser,这似乎是您需要的好主意!例子:

// Create a DOM object from a string
$html = str_get_html('<html><body>Hello!</body></html>');

// Create a DOM object from a URL
$html = file_get_html('http://www.google.com/');

// Create a DOM object from a HTML file
$html = file_get_html('test.htm');
于 2013-03-07T11:51:01.853 回答
3

使用此代码

如果(某些条件)
{
    //不允许访问
}
别的
{
    echo file_get_contents("your_file.html");
}

或者

如果(某些条件)
{
    //不允许访问
}
别的
{
    require_once("your_file.html");
}

于 2013-03-07T11:49:52.143 回答
3

使用类似的功能

include()
include_once()
require()
require_once()
file_get_contents()
于 2013-03-07T11:56:36.847 回答
2
<?php
if(some condition)
{
    //Dont allow access
}
else
{
    echo file_get_contents("your_file.html");
}
?>

这应该可以解决问题

或者,正如nauphal的回答所说,只需使用include()

不要忘记,如果文件不存在,你可能会遇到一些麻烦(所以,也许,在包含或获取内容之前检查)

于 2013-03-07T11:45:56.693 回答
2

扩展 nauphal 的答案以获得更强大的解决方案..

<?php
if(some condition)
{
    //Dont allow access
}
else
{
    if(file_exists("your_file.html"))
    {
       include "your_file.html";
    }
    else
    {
      echo 'Opps! File not found. Please check the path again';
    }
}
?>
于 2013-03-07T11:50:08.307 回答
1

我想你想包含你的 HTML 文件或者我误解了这个问题。

<?php
if(some condition)
{
    //Dont allow access
}
else
{
    include ("..html/myFile.html");
}
?>
于 2013-03-07T11:46:49.060 回答
-1

方式一:

ob_start();
include "yourfile.html";
$return = ob_get_contents();
ob_clean();

echo $return;

方式 2:使用模板,如CTPPSmarty等...模板可用于将一些逻辑从 php 转移到模板,例如,在 CTPP 中:

$Templater -> params('ok' => true);
$Template -> output('template.html');

在模板 html 中:

<TMPL_if (ok) >
ok is true
<TMPL_else>
ok not true
</TMPL_if>

其他模板中也有相同的想法。模板更好,因为它可以帮助您标准化模板并将所有原始逻辑发送给它们。

于 2013-03-07T11:59:18.450 回答