所以我已经使用StackOverflow编程相关主题超过5年了,从来没有考虑过注册9/10次,我找到了我想要的。这一次,我在互联网上搜索了堆栈溢出的建议,但我找不到答案,所以我来了。
我希望@include有一个导航栏,无论用户在哪个页面上,它都可以通用访问。问题是,我有多个目录,/login/寄存器/剖面
列表还在继续,当然还有CSS文件、导航和JS文件。我不想经常将href定义为'../'或'../../'文件的。对于即将成为庞大的PHP文件目录来说,这是一个疯狂的维护量。
我遇到的问题是试图计算如何通过@include文件检测用户所在的目录,例如,如果他们希望返回家中,确保目录发生正确的更改量。
我希望我在这里讲得有道理。
我相信我可能需要使用$_SERVER,但我真的坚持提供我尝试过的代码。
感谢
这是我的第一次尝试,它在一定程度上起作用,但它取决于我最初测试代码的页面。echo只是想看看自己在后台发生了什么。使用Laravel框架非常容易实现完美,但由于某种原因,我一直在努力实现正常操作
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\');
$extra = 'index.php';
$folder = $uri;
$folder = "/Folder1/Folder2/Folder3/Folder4/Folder5";
echo substr_count($folder, "/");
echo '<br>' . $folder . '<br>';
$EndLoop = substr_count($folder, "/");
$String = '';
for($Loop = 1; $Loop < $EndLoop; $Loop ++)
{
echo $Loop;
$String = '../' . $String;
echo '<br>';
echo $String;
}
编辑2:
我刚刚做过这个,它通常是有效的。。我在使用时意识到
<a href="signup">Sign Up</a>
是否将其路由到主机/directory_currently_in/signup/
所以我所做的就是这个
<?php $host = $_SERVER['HTTP_HOST'];
//further down
echo '<a href="http://' . $host . '/signup">Sign Up</a>';
因为注册目录在根目录中,并且单个目录可能比根目录更远3个目录,所以我不得不尝试找到一种方法,将它们从根目录中直接备份2或3个文件夹到注册目录中。
使用http://并链接到主机为我做到了这一点。有什么改进建议吗?
尝试以下方法
<?php
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/common/header.php";
include_once($path);
?>
这样,您总是引用基础,然后从那里构建文件夹结构。