Как использовать константу PHP __DIR__ с заголовком(«МЕСТОПОЛОЖЕНИЕ:».__DIR__.»/file.php’);` при использовании XAMPP на локальном хосте Linux?

#php #linux #xampp #localhost

Вопрос:

__DIR__ это дает мне /opt/lampp/htdocs/folder . Поскольку это действительно мое местоположение файловой системы Linux, оно не будет перенаправляться с помощью header('LOCATION:'.__DIR__.'/file.php'); . Как мне сделать так __DIR__ , чтобы он не дошел до моего корневого каталога Linux, а вместо этого перешел к чему-то более похожему localhost/folder ? Я предполагаю, что это какая-то конфигурация, но я понятия не имею.

Причина, по которой я хочу это сделать, заключается в том, чтобы я мог установить const , что я могу использовать для перенаправления в зависимости от того, куда будущий клиент помещает мой PHP.

Комментарии:

1. Что-то вроде header('Location: /folder/file.php'); ?

2. Могу я просто так не пользоваться __DIR__ ? Это только для того, чтобы включать и требовать вещи? Я могу жить с этим, но я хотел бы знать, есть ли способ это сделать.

3. вот что __DIR__ будет сделано — дайте полный путь ~ не совсем подходящий для вашей цели, но полезный в нескольких ситуациях не только includes

4. … который также даст вам путь к файловой системе — также не подходит в вашем случае. Я больше думал о том $_SERVER['SERVER_NAME'] , $_SERVER['SERVER_PROTOCOL'] что и тому подобное

5. В чем, кажется, проблема прямо сейчас? Чего вы пытаетесь достичь? Как уже говорилось, вы не можете использовать __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');