PHP __DIR__ 文件和备份按一个目录

use*_*152 3 php

我正在使用 PHP 7 运行 laravel 服务器。我试图使用以下命令来请求文件:

require __DIR__.'/../bootstrap/autoload.php';
Run Code Online (Sandbox Code Playgroud)

我运行此脚本的文件位于名为 public 的文件夹中。因此__DIR__应该等于:

www.mydomain.com/myserver/public/index.php
Run Code Online (Sandbox Code Playgroud)

脚本应创建的路径应该是:

www.mydomain.com/myserver/bootstrap/autoload.php
Run Code Online (Sandbox Code Playgroud)

然而,它不是动态创建正确的路径,而是将“/../”视为文字目录,而不是告诉它返回一个目录。所以我要返回的路径是:

www.mydomain.com/myserver/public/../bootstrap/autoload.php
Run Code Online (Sandbox Code Playgroud)

有什么想法为什么会发生这种情况吗?提前谢谢了。

Som*_*son 5

根据我的评论;

__DIR__是你当前所在的目录,如果你想返回上一步,你可以使用dirname

这用于诸如;

dirname(__DIR__);
Run Code Online (Sandbox Code Playgroud)

因此,如果您当前的目录是(并且是您当前所在的目录):

C:/server/htdocs/system/main/index.php

__DIR__会给你C:/server/htdocs/system/main并且dirname(__DIR__)会给你C:/server/htdocs/system/

因此,使用以下内容即可满足您的需要;

require(dirname(__DIR__) . "/bootstrap/autoload.php");
Run Code Online (Sandbox Code Playgroud)