以下是我的文件夹结构
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
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 Off或VirtualHost
中设置.htaccess
。这会在遇到404
时产生/index.php/
错误,或者你可以把这个规则放入你的.htaccess
:
.htaccess
Options -Multiviews
RedirectMatch 301 ^/index\.php(/.*) $1
此规则有利于重写飞行网址从路径中删除不需要的/index.php/
。
希望这可以帮助。
包含文件的正确方法是......包括!
变体包括include_once,require和require_once
确保在包含时始终使用ABSOLUTE路径。