获取工作目录名称

我有一个在我的网站文件夹里的 php 页面。

我需要将工作目录的名称添加到一个变量中,例如:

$myVar = current_directory_name;

这可能吗?

360458 次浏览
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中的函数,因此使用

返回文章页面

require_once dirname(__FILE__) . '/images/editor.php';

返回文章页面

require_once libs/common.php

这样,当 common.php 是 main.php中的 require'd时,common.php中的 require_once调用将正确地包含 images/editor.php中的 editor.php,而不是试图查看运行 main.php的工作目录。

可以使用 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 路径 Current _ Path 当前路径

然后返回 Current _ path 当前路径

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]);

Libs/影像/index.php
结果: 图像

为了得到工作目录的名称,我们可以使用 getcwd()或者 dirname(__FILE__),但是 getcwd()dirname(__FILE__)并不是同义词。他们的所作所为和他们的名字一模一样。如果您的代码是通过引用存在于其他目录中的另一个文件中的类来运行的,那么这两个方法将返回不同的结果。

例如,如果我调用一个类,从这里调用这两个函数,该类存在于 /index.php的某个 /controller/goodclass.php中,然后是 ABC2将返回 '/ABC4将返回 /controller

我使用这一行来得到没有路径的实际文件目录名

substr(dirname(__FILE__), strrpos(dirname(__FILE__), '\\') + 1)

我对它做了一点改动,以便在 Linux 上工作

substr(dirname(__FILE__), strrpos(str_replace('\\', '/', dirname(__FILE__)), '/') + 1)

Basename (getcwd ()) ;//仅返回当前工作目录名。