【发布时间】:2012-04-17 08:25:02
【问题描述】:
我的网站文件夹中有一个 php 页面。
我需要将当前目录的名称添加到一个变量中例如:
$myVar = current_directory_name;
这可能吗?
【问题讨论】:
标签: php
我的网站文件夹中有一个 php 页面。
我需要将当前目录的名称添加到一个变量中例如:
$myVar = current_directory_name;
这可能吗?
【问题讨论】:
标签: php
getcwd();
或
dirname(__FILE__);
或 (PHP5)
basename(__DIR__)
http://php.net/manual/en/function.getcwd.php
http://php.net/manual/en/function.dirname.php
您可以使用basename() 获取路径的尾随部分:)
在您的情况下,我想说您最有可能使用getcwd(),当您的文件需要包含另一个库并包含在另一个库中时,dirname(__FILE__) 会更有用。
例如:
main.php
libs/common.php
libs/images/editor.php
在你的common.php中你需要使用editor.php中的函数,所以你使用
common.php:
require_once dirname(__FILE__) . '/images/editor.php';
main.php:
require_once libs/common.php
这样,当common.php 在main.php 中为require'd 时,common.php 中的require_once 的调用将正确地在images/editor.php 中包含editor.php,而不是尝试查看main.php 所在的当前目录正在运行。
【讨论】:
basename(__DIR__)
basename(getcwd())
__DIR__ 是包含文件的路径,而不是当前目录
basename(__DIR__) 为我节省了一天。非常感谢分享!
您可以使用dirname(__FILE__)获取当前文件所在目录的路径。
示例:/path_to/your_dir/your_file.php:
// use dirname to get the directory of the current file
$path = dirname(__FILE__);
// $path here is now /path_to/your_dir
// split directory into array of pieces
$pieces = explode(DIRECTORY_SEPARATOR, $path);
// $pieces = ['path_to', 'your_dir']
// get the last piece
echo $pieces[count($pieces) - 1];
// result is: your_dir
【讨论】:
其实我发现最好的解决方案如下:
$cur_dir = explode('\\', getcwd());
echo $cur_dir[count($cur_dir)-1];
如果你的目录是 www\var\path\ Current_Path
然后返回 Current_path
【讨论】:
PATH_SEPARATOR
echo basename(__DIR__); will return the current directory name only
echo basename(__FILE__); will return the current file name only
【讨论】:
仅获取执行脚本的目录名称:
//Path to script: /data/html/cars/index.php
echo basename(dirname(__FILE__)); //"cars"
【讨论】:
$myVar = str_replace('/', '', $_SERVER[REQUEST_URI]);
库/图像/index.php
结果:图片
【讨论】:
要获取当前目录的名称,我们可以使用getcwd() 或dirname(__FILE__) 但getcwd() 和dirname(__FILE__) 不是同义词。他们完全按照他们的名字行事。如果您的代码是通过引用其他目录中存在的另一个文件中的类来运行的,那么这两种方法将返回不同的结果。
例如,如果我正在调用一个类,从其中调用这两个函数并且该类存在于 /index.php 的某些 /controller/goodclass.php 中,那么 getcwd() 将返回 '/ 和 dirname(__FILE__) 将返回 /controller。
【讨论】:
我使用这一行来获取没有路径的实际文件目录名。 (适用于窗户)
substr(dirname(__FILE__), strrpos(dirname(__FILE__), '\\') + 1)
我稍微改动了一下,也可以在 Linux 上工作
substr(dirname(__FILE__), strrpos(str_replace('\\', '/', dirname(__FILE__)), '/') + 1)
【讨论】: