如何在php中获取运行脚本的目录中的父文件夹的名称?

a2mppw5e  于 2023-03-22  发布在  PHP
关注(0)|答案(7)|浏览(169)

我想得到的只是父文件夹的名称,其中一个脚本是目前正在运行的目录?
如果我们有一个名为foo.php脚本,其路径为“/Users/Somone/Sites/public/foo.php”,我如何才能只从文件路径中获取“public“,而不是整个目录树?
任何帮助都很好。
谢谢。

mzillmmw

mzillmmw1#

最简单的方法是:

basename(__DIR__);

正如@mario sagely所指出的,这只可能在PHP 5.3+中实现,所以如果你坚持使用5.2或更低版本......那么......你应该切换到一个新的主机并停止使用旧版软件。

cfh9epnr

cfh9epnr2#

echo basename(__DIR__);

**编辑:**看起来__DIR__不包括尾部目录分隔符,所以substr()调用是不必要的。

fdbelqdn

fdbelqdn3#

这对我很有效:
trim(strrchr(__DIR__, DIRECTORY_SEPARATOR), DIRECTORY_SEPARATOR);

ffx8fchx

ffx8fchx4#

//on windows server
$cur_dir = explode('\\', getcwd());
$sector=$cur_dir[count($cur_dir)-2];
echo $sector;
   //on linux server
$cur_dir = explode('/', getcwd());
$sector=$cur_dir[count($cur_dir)-2];
echo $sector;

根据需要更改父目录:-2,-3,-4

dluptydi

dluptydi5#

substr(__DIR__, strrpos(__DIR__, '/')+1);
egdjgwm8

egdjgwm86#

如果您将脚本文件(作为文件的填充路径)作为dirname()的参数传入,它将返回父目录。http://php.net/manual/en/function.dirname.php
一旦你有了它,将该字符串传递到strrchr以获得直接在最后一个斜杠http://www.php.net/manual/en/function.strrchr.php之后的字符串

strrchr(dirname(__FILE__, '/')
u4dcyp6a

u4dcyp6a7#

一个更好的方法是使用realpath()成功返回规范化的绝对路径名。当与相对路径一起使用时非常有用。
说你在你的www目录

realpath('.'); //will return /var/www

然后输入/admin目录,但仍需要www路径

realpath('..'); //will return /var/www

相关问题