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函数显示html_Php_Html_Function_Templating - Fatal编程技术网

使用php函数显示html

使用php函数显示html,php,html,function,templating,Php,Html,Function,Templating,我正在做一个小项目,我想应用某种模板来显示主模板文件之间的内容,而不使用任何模板引擎。目前我有以下几页 layout.template.php <!DOCTYPE html> <html lang="en"> <head> </head> <body> <!-- page content displays here --> <?php show_content(); ?> </body> &

我正在做一个小项目,我想应用某种模板来显示主模板文件之间的内容,而不使用任何模板引擎。目前我有以下几页

layout.template.php

<!DOCTYPE html>
<html lang="en">
<head>

</head>
<body>
  <!-- page content displays here -->
  <?php show_content(); ?>
</body>
</html>
<?php function show_content(){ ?>
<div>
    <h1>Home page</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<?php } 
include 'layout.template.php';
?>
<?php function show_content(){ ?>
<div>
    <h1>Second page</h1>
    <p>some other content</p>
</div>
<?php }
include 'layout.template.php';
?>

index.php

<!DOCTYPE html>
<html lang="en">
<head>

</head>
<body>
  <!-- page content displays here -->
  <?php show_content(); ?>
</body>
</html>
<?php function show_content(){ ?>
<div>
    <h1>Home page</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<?php } 
include 'layout.template.php';
?>
<?php function show_content(){ ?>
<div>
    <h1>Second page</h1>
    <p>some other content</p>
</div>
<?php }
include 'layout.template.php';
?>

主页
Lorem ipsum dolor sit amet,奉献精英

second.php

<!DOCTYPE html>
<html lang="en">
<head>

</head>
<body>
  <!-- page content displays here -->
  <?php show_content(); ?>
</body>
</html>
<?php function show_content(){ ?>
<div>
    <h1>Home page</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<?php } 
include 'layout.template.php';
?>
<?php function show_content(){ ?>
<div>
    <h1>Second page</h1>
    <p>some other content</p>
</div>
<?php }
include 'layout.template.php';
?>

第二页
其他一些内容

我使用show_content()函数定义将呈现到每个页面的layout.template.php文件中的html。在包含layout.template.php时,它会调用该函数,并根据包含该函数的页面显示其中的html代码。我的问题是

这是个好主意还是好做法?
除了使用模板引擎之外,我还有什么其他方法可以实现这一点呢?

没有一个完美的答案,因为有太多的方法可以实现这一点

一个好的解决方案是将视图(HTML)与逻辑(PHP)分开。也许是个好答案

如果你只想练习:

创建一个文件夹并将所有HTML文件放入该文件夹。然后您就有了PHP文件,其中包含一个函数(甚至可能是一个方法),该函数调用您想要显示的HTML内容。
如果HTML内容也包含PHP,最好不要将其命名为
myFile.PHP
。在本例中,将其命名为
myFile.phtml
,这样您就可以清楚地看到,它是HTML,但它的一部分也是PHP。

谢谢@Reza Saadati。所以我所拥有的不是完全糟糕的代码吗?@Joshua不,这绝对不坏,但你将HTML与PHP混合在一起,这不应该是这样。相反,请尝试使用函数
file\u get\u contents()
获取HTML内容。好的@Reza Saadati再次感谢。