包含php文件的正确方法是什么

问题描述 投票:1回答:2

以下是我的文件夹结构

test_folder
    pages_folder
        another.php
        header.php
    index.php

现在我想将header.php文件包含到index.php文件以及another.php文件中,这两个文件都驻留在不同的目录中。

如果我的header.php文件有一个图像元素,其源是相对于header.php文件,则index.php不会加载图像元素。

我收到以下错误

无法加载资源:服务器响应状态为404(未找到)。

所以我的问题是如何将header.php文件包含到index.php和another.php中,以便这两个文件都可以加载图像元素。

php
2个回答
2
投票

您可以使用相对路径或绝对路径。最好的是绝对路径,因为它可以包含文件夹和文件,无需猜测确切的路径......

简单的相对路径:

<?php
  include("test_folder/pages_folder/another.php");
  include("test_folder/pages_folder/header.php");
  include("test_folder/index.php");
?>

或绝对路径更好:

<?php
  include($_SERVER["DOCUMENT_ROOT"] . "/test_folder/pages_folder/another.php");
  include($_SERVER["DOCUMENT_ROOT"] . "/test_folder/pages_folder/header.php");
  include($_SERVER["DOCUMENT_ROOT"] . "/test_folder/index.php");
?>

其中$_SERVER["DOCUMENT_ROOT"]是你的服务器的根...所以你可以从它开始你的文件include

一些xampp配置添加到"/index.php/"文件夹的路径,这会产生加载相关元素的错误...例如,如果你的服务器的根目录中有一个样式表,并想将它添加到你发现的php文件中根本你会注意到css文件将指向这个结构:server / index.php / style.css而不是server / style.css。如果这是你的情况,你应该在你的AcceptPathInfo OffVirtualHost中设置.htaccess。这会在遇到404时产生/index.php/错误,或者你可以把这个规则放入你的.htaccess

.htaccess

Options -Multiviews
RedirectMatch 301 ^/index\.php(/.*) $1

此规则有利于重写飞行网址从路径中删除不需要的/index.php/

希望这可以帮助。


-1
投票

包含文件的正确方法是......包括!

变体包括include_once,require和require_once

确保在包含时始终使用ABSOLUTE路径。

© www.soinside.com 2019 - 2024. All rights reserved.