我想得到的只是父文件夹的名称,其中一个脚本是目前正在运行的目录?如果我们有一个名为foo.php脚本,其路径为“/Users/Somone/Sites/public/foo.php”,我如何才能只从文件路径中获取“public“,而不是整个目录树?任何帮助都很好。谢谢。
mzillmmw1#
最简单的方法是:
basename(__DIR__);
正如@mario sagely所指出的,这只可能在PHP 5.3+中实现,所以如果你坚持使用5.2或更低版本......那么......你应该切换到一个新的主机并停止使用旧版软件。
cfh9epnr2#
echo basename(__DIR__);
**编辑:**看起来__DIR__不包括尾部目录分隔符,所以substr()调用是不必要的。
__DIR__
substr()
fdbelqdn3#
这对我很有效:trim(strrchr(__DIR__, DIRECTORY_SEPARATOR), DIRECTORY_SEPARATOR);
trim(strrchr(__DIR__, DIRECTORY_SEPARATOR), DIRECTORY_SEPARATOR);
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
dluptydi5#
substr(__DIR__, strrpos(__DIR__, '/')+1);
egdjgwm86#
如果您将脚本文件(作为文件的填充路径)作为dirname()的参数传入,它将返回父目录。http://php.net/manual/en/function.dirname.php一旦你有了它,将该字符串传递到strrchr以获得直接在最后一个斜杠http://www.php.net/manual/en/function.strrchr.php之后的字符串
strrchr(dirname(__FILE__, '/')
u4dcyp6a7#
一个更好的方法是使用realpath()成功返回规范化的绝对路径名。当与相对路径一起使用时非常有用。说你在你的www目录
realpath('.'); //will return /var/www
然后输入/admin目录,但仍需要www路径
realpath('..'); //will return /var/www
7条答案
按热度按时间mzillmmw1#
最简单的方法是:
正如@mario sagely所指出的,这只可能在PHP 5.3+中实现,所以如果你坚持使用5.2或更低版本......那么......你应该切换到一个新的主机并停止使用旧版软件。
cfh9epnr2#
**编辑:**看起来
__DIR__
不包括尾部目录分隔符,所以substr()
调用是不必要的。fdbelqdn3#
这对我很有效:
trim(strrchr(__DIR__, DIRECTORY_SEPARATOR), DIRECTORY_SEPARATOR);
ffx8fchx4#
根据需要更改父目录:-2,-3,-4
dluptydi5#
egdjgwm86#
如果您将脚本文件(作为文件的填充路径)作为dirname()的参数传入,它将返回父目录。http://php.net/manual/en/function.dirname.php
一旦你有了它,将该字符串传递到strrchr以获得直接在最后一个斜杠http://www.php.net/manual/en/function.strrchr.php之后的字符串
u4dcyp6a7#
一个更好的方法是使用realpath()成功返回规范化的绝对路径名。当与相对路径一起使用时非常有用。
说你在你的www目录
然后输入/admin目录,但仍需要www路径