gpt4 book ai didi

php - 在 PHP 中回显 $_SERVER ['DOCUMENT_ROOT' ] 的结束部分或最后一个文件夹

转载 作者:可可西里 更新时间:2023-10-31 23:39:42 25 4
gpt4 key购买 nike

我需要使用 $_SERVER['DOCUMENT_ROOT']; 扫描文件和文件夹以在我的导航菜单中显示。

假设我的根目录位于 /home/user/public_html/website/

这是我回显根目录的方式:

echo $_SERVER['DOCUMENT_ROOT'];

它将显示/home/user/public_html/website/

下面是我如何回显根目录中的文件夹:

echo $_SERVER['DOCUMENT_ROOT'].'about/';

它将显示/home/user/public_html/website/about/

问题:我如何去除它一直显示到根文件夹和/或子文件夹的所有内容。

示例:如果我回显 $_SERVER['DOCUMENT_ROOT'],我希望它显示为 / 而不是整个 /home/user/public_html/website/ 路径。

如果我回显一个子文件夹,我希望它显示为 /about/ 而不是 /home/user/public_html/website/about/

那么,我怎样才能让它只回显 $_SERVER['DOCUMENT_ROOT']; 的结尾部分而不是整个目录路径?

我试过 dirnamebasename 但它们都不能满足我的需要。我想到了字符串替换,但没有更容易添加到 $_SERVER['DOCUMENT_ROOT'] 的东西,它只会回显根文件夹或根文件夹加子文件夹吗?

更新:

我最终使用了 anant kumar singh 的以下答案,但使用 preg_split 而不是 explode 对其进行了调整,因为 preg_split 可以采用多个字符串定界符,而 explode 只能采用 1 个。

$newArray = preg_split( " (-in/|-ca/|-co/) ", dirname($_SERVER['DOCUMENT_ROOT']) );
if(count($newArray)>1){
echo '/'.$newArray[1].'/';
}else{
echo '/';
}

如果您知道更好的方法来完成我正在尝试做的事情,请在下面张贴您的答案。

最佳答案

您可以通过以下方式进行 explode :--

$newArray = explode('website/',$_SERVER['DOCUMENT_ROOT']);
if(count($newArray)>1){
echo "/".$newArray[1];
}else{
echo '/';
}

正如您已经说过的,preg_split 已经为您完成了这项工作:-

$newArray = preg_split( " (-in/|-ca/|-co/) ", dirname($_SERVER['DOCUMENT_ROOT']) ); if(count($newArray)>1){ echo "/".$newArray[1]."/"; }else{ echo '/'; }

注意:- 不要 panic 。我不会占你的便宜。我只是为了 future 人民的目的而做的。如果您将其作为答案,那么我会将其删除。

关于php - 在 PHP 中回显 $_SERVER ['DOCUMENT_ROOT' ] 的结束部分或最后一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30063208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com