如何管理和构造服务器根文件夹(PHP)中的页面和链接

如何管理和构造服务器根文件夹(PHP)中的页面和链接,php,xampp,include-path,document-root,Php,Xampp,Include Path,Document Root,我没有使用任何框架,只是在XAMPP环境中工作 像所有人一样,我也有一个索引文件index.php,最重要的是,我想在我的所有页面中添加相同的标题 在我的index.php页面中,我添加了如下标题 <?php include 'html/headers/header.html'; ?> 在我的page.php页面中,它位于根文件夹的info文件夹中,如c:/xampp/htdocs/website/info <?php include '../html/headers/hea

我没有使用任何框架,只是在XAMPP环境中工作

像所有人一样,我也有一个索引文件index.php,最重要的是,我想在我的所有页面中添加相同的标题

在我的index.php页面中,我添加了如下标题

<?php include 'html/headers/header.html'; ?>
在我的page.php页面中,它位于根文件夹的info文件夹中,如c:/xampp/htdocs/website/info

<?php include '../html/headers/header.html'; ?>
所有这些都可以正常工作,但当heeader中的图像路径保持不变时,问题就会出现,即图像路径对index.php文件有效,但对page.php文件无效,原因您已经知道了

我尝试了$_服务器['DOCUMENT_ROOT']./网站/images/logo.png。它既不起作用,我也不希望这种技术,因为页眉加页脚等可以有很多图像

我也不想使用任何框架或cdn存储


这是很容易解决的。如果我遗漏了什么,请告诉我。Thanx

当我用PHP编码时,我倾向于在每个PHP文件的开头有两个变量

// Use for file on the server, eg includes
$file_path = "../";

// For files relative to my page path, eg images, links
$link_path = "../../";
我会根据文件的位置更改其中的每一项

然后,我用$file\u路径预先添加任何include和页面上的内容,例如图像、带有$link\u路径的超链接

然后在header.html和页面中,您可以:

echo '<img src="' . $link_path . 'website/images/logo.png" />';
echo '<a href="' . $link_path . 'website/page.html'>My Link</a>';
如果你想要一个链接,你可以:

echo '<img src="' . $link_path . 'website/images/logo.png" />';
echo '<a href="' . $link_path . 'website/page.html'>My Link</a>';

这是您的index.php页面

<?php
    if(isset($_GET['page'])) {
        $dir = 'page/' . $_GET['page']. '.php';
        if(file_exists($dir)) {
            include_once($dir);
        } else {
            include_once('page/404.php');
        }
    } else {
        include_once('page/home.php');
    }
?>
您有这样的文件夹结构

页 部分 index.php 在页面中保存home.php、info.php等。 并在部分中保存header.php、footer.php等


使用index.php中的图像src,您就不会有任何问题了。

@DanFromGermany只需编辑问题并将标题包含在index.php中即可。在这里,您可以使用GET[]参数加载不同的页面,如info?。简单、快速、轻量级。@Zafta我应该给你发一些代码,让你明白我的意思吗?header.html文件中的图像不会显示,因为那里的img src是为index.php提供的!这就是为什么要在包含的文件中使用$link_路径。确保每个文件都有正确的路径。否则index.php不起作用!两条不同的链接路径,只有1条File@Coulton使用这种技术是否有效且良好always@Zafta好问题,也许不是,但这是一个简单的解决方案,可以确保您的URL在第一次剪切时正确无误,但基于GET变量显示实体是否总是有效??