php - PHP __DIR__ 文件并按一个目录备份
问题描述
我正在使用 PHP 7 运行 laravel 服务器。我正在尝试使用以下内容来要求文件:
require __DIR__.'/../bootstrap/autoload.php';
我在其中运行此脚本的文件位于名为 public 的文件夹中。因此__DIR__
应该等于:
www.mydomain.com/myserver/public/index.php
脚本应该创建的路径应该是:
www.mydomain.com/myserver/bootstrap/autoload.php
但是,它不是动态创建正确的路径,而是将“/../”视为文字目录,而不是告诉它返回一个目录。所以我回来的路径是:
www.mydomain.com/myserver/public/../bootstrap/autoload.php
任何想法为什么会发生这种情况?提前谢谢了。
解决方案
从手册realpath:
realpath() 扩展所有符号链接并解析输入路径中对 /./、/../ 和额外 / 字符的引用,并返回规范化的绝对路径名
因此以下应该工作
require realpath(__DIR__."../bootstrap/autoload.php")
但是,这不是必需的,因为 require 可以自己解析相对路径。
由于您使用的是 laravel,因此推荐的方法是:
require base_path("boostrap/autoload.php")
然而,实际推荐的方法是坐下来思考为什么你需要这样做,因为如果你正确启动 laravel,它应该为你做所有这些事情,你永远不需要做require
任何事情。
推荐阅读
- flutter - 使用新的 TextField 值命中 API
- html - 如何:垂直堆叠时两个具有相等宽度的元素,否则自动宽度
- css - Inovua React Data Grid - 更改预先构建的样式,如省略号填充
- laravel - 将语言环境添加到 laravel 资源路由
- java - Jackson-databind 映射 JSON 跳过层
- c - Drawing to X11 root window
- python - 使用pandas python将json嵌套到一行
- function - 错误:缺少参数“x”,没有默认值
- algorithm - anagram finder 实现的计算复杂度
- qt - Qt:如何在光标上一致地显示文本,而不取决于光标位置?