PHP 获取虚拟主机上包含文件的目录


PHP get directory of included file on Virtualhost

我想在我的 apache 虚拟服务器上使用 __DIR__,但它使用系统地址 ( C:'xampp'htdocs'virtual'file.php ),有没有办法使用服务器的地址(/file.phphttp://virtual/file.php )?

谢谢你的帮助

编辑:

感谢您的回答,但我想在其他地方包含file.php,所以我不能使用$_SERVER['REQUEST_URI'].还有别的办法吗?

__DIR__将为您提供使用它的文件文件夹的文件系统路径。文件系统位置和 URL 可能完全不相关,具体取决于您的 HTTP 服务器配置。

如果您想了解有关客户端请求的地址的信息,则可以使用 $_SERVER['REQUEST_URI']

你必须使用 $_SERVER['REQUEST_URI']__DIR__

检查此链接在此处输入链接说明

__DIR__ 文件的目录。如果在包含中使用,则返回包含文件的目录。这等效于 dirname(__FILE__)。此目录名称没有尾部斜杠,除非它是根目录。

所以你必须使用目录(__FILE__)

__DIR__为您提供完整的绝对文件系统路径。你应该使用这个:

dirname($_SERVER['SCRIPT_NAME']);