【问题标题】:PHP File includes app.php > App includes template.php > Template includes header.php & footer.phpPHP 文件包含 app.php > 应用包含 template.php > 模板包含 header.php 和 footer.php
【发布时间】:2020-07-29 10:38:15
【问题描述】:

这是我们的文件夹结构:

index.php
-app/
--app.php
---template/
----template.php
----parts/
-----head.php
-----header.php
-----body.php
-----(etc)

我基本上只是在每个文件中使用 include 来导入我的 html 模板。

index.php:

<?php 
include ('app/app.php');
?>

app.php:

<?php
include ('template/template.php');
?>

模板/模板.php:

<?php 

// Load our Head
include ('parts/head.php');

// Load our Header
include ('parts/header.php');

// Load our Body
include ('parts/body.php');

// Load our Footer
include ('parts/footer.php');

?>

每个 head.php、body.php 等...都有一个 &lt;?php echo "test head" ?&gt;,但最后我的结果是一个空白页。

【问题讨论】:

  • 您是否启用了错误输出?

标签: php file templates nested include


【解决方案1】:

这不起作用有两个原因是因为当您包含其他 PHP 文件时,使用“/”将引用 index.php 的“/”,因此在所有包含中,您必须将“/”更改为__DIR__

以及在 index.php 中使用include ('/app/app.php'); 将无法找到正确的当前目录,因此针对您的具体情况将代码更改为:

index.php:

<?php 
include ('.\app\app.php');
?>

app.php:

<?php
include(__DIR__.'\template\template.php');
?>

模板\模板.php:

<?php

// Load our Head
include (__DIR__.'\parts\head.php');

// Load our Header
include (__DIR__.'\parts\header.php');

// Load our Body
include (__DIR__.'\parts\body.php');

// Load our Footer
include (__DIR__.'\parts\footer.php');

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-13
    • 2011-08-02
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多