在PHP中回显$_SERVER [‘DOCUMENT_ROOT’]的结尾部分或最后一个
我需要使用$_SERVER [‘DOCUMENT_ROOT’]; scandir为我的导航菜单显示的文件和文件夹.
假设我的根目录位于/ 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 / path. 如果我回显一个子文件夹,我希望它显示为/ about /而不是/ home / user / public_html / website / about /. 那么,我怎样才能让它回显$_SERVER [‘DOCUMENT_ROOT’]的结尾部分;而不是整个目录路径? 我已经尝试过dirname和basename,但这些都没有我需要的东西.我已经想过了字符串替换但是没有更容易添加到$_SERVER [‘DOCUMENT_ROOT’]的东西,它只会回显根文件夹或根文件夹加上子文件夹? 更新: 我最终使用了来自anant kumar singh的答案,但是使用preg_split调整它而不是爆炸,因为preg_split可以采用多个字符串分隔符,其中explode只能使用1. $newArray = preg_split( " (-in/|-ca/|-co/) ",dirname($_SERVER['DOCUMENT_ROOT']) ); if(count($newArray)>1){ echo '/'.$newArray[1].'/'; }else{ echo '/'; } 如果您知道更好的方法来完成我想要做的事情,请在下面发布您的答案. 解决方法
您可以通过以下方式进行爆炸: –
$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 '/'; } 注意: – 不要惊慌.我不会接受你的信任.我只是为了未来人民的目的而做到了.如果你把它作为答案,那么我将删除它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |