在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header('LOCATION:'.__DIR__.'/file.php');` 一起使用?
Posted
技术标签:
【中文标题】在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header(\'LOCATION:\'.__DIR__.\'/file.php\');` 一起使用?【英文标题】:How do I use the PHP constant __DIR__ with `header('LOCATION:'.__DIR__.'/file.php');` when using XAMPP on localhost Linux?在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header('LOCATION:'.__DIR__.'/file.php');` 一起使用? 【发布时间】:2021-11-06 17:35:51 【问题描述】:__DIR__
给了我/opt/lampp/htdocs/folder
。因为那确实是我的 Linux 文件系统位置,所以它不会使用 header('LOCATION:'.__DIR__.'/file.php');
重定向。我怎样才能做到__DIR__
不会一直到我的 Linux 根目录,而是转到更像 localhost/folder
的东西?我猜这是某种配置的东西,但我不知道。
我想这样做的原因是我可以设置一个const
,我可以根据未来客户端放置我的 PHP 的位置来使用它进行重定向。
【问题讨论】:
类似header('Location: /folder/file.php');
?
我可以不这样使用__DIR__
吗?它仅用于包含和需要的东西吗?我可以忍受,但我想知道是否有办法做到这一点。
这就是__DIR__
会做的——给出完整的路径~ 不是很适合你的目的,但在几种情况下很有用,而不仅仅是includes
... 这也将为您提供文件系统路径 - 也不适合您的情况。我更多地考虑$_SERVER['SERVER_NAME']
、$_SERVER['SERVER_PROTOCOL']
之类的思路
现在似乎有什么问题?你想达到什么目的?如前所述,您不能使用__DIR__
或$_SERVER['DOCUMENT_ROOT']
进行重定向。你可以使用类似header('Location: /folder/file.php');
的东西重定向到http://localhost:8000/folder/file.php
,因为http://localhost:8000
是你的服务器。
【参考方案1】:
这是我想出的:
$dir = preg_replace('@^'.$_SERVER['DOCUMENT_ROOT'].'@', '', __DIR__);
看起来我只能在我获得 __DIR__
的同一页面上使用它,所以它不能变成可重用的函数。
因此,只要$dir
在我使用header('LOCATION:'
的同一页面上,我就会像这样重定向:
header('LOCATION:'.$dir.'/../folder/file.php');
【讨论】:
以上是关于在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header('LOCATION:'.__DIR__.'/file.php');` 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
获取实时 Wordpress 站点的副本,以便在 Linux 上使用 Xampp 在 localhost 上工作