Проблемы абсолютного пути в PHP на локальном хосте в OS X - PullRequest
0 голосов
/ 06 октября 2010

У меня проблемы с определенными абсолютными путями в PHP. Я определяю SITE_ROOT и APP_PATH следующим образом:

defined('SITE_ROOT') ? null : 
define('SITE_ROOT', str_replace('//','/',dirname(__FILE__)) );

defined('APP_PATH') ? null : define('APP_PATH', SITE_ROOT.DS.'application');

При использовании APP_PATH в таком приложении, как:

echo APP_PATH;

... это что я получаю :

/Users/user/Sites/MyWebsite/application

Что я хочу для вывода будет:

localhost/application

Есть ли нехитрый способ сделать это?

Мой вариант использования - использовать APP_PATH (уже используемый для выполнения всех моих require()), отображаемый в HTML, чтобы избежать проблем относительного пути в URL для href.

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Константа __FILE__ содержит путь к файлу, ничего больше. Посмотрите на $_SERVER['REQUEST_URI'] и $_SERVER['HTTP_HOST'], чтобы узнать, какой URL был использован для вызова скрипта. Это информация об окружении , которая должна предоставляться веб-сервером, инициировавшим скрипт PHP (например, Apache), это не то, что по сути знает PHP.

0 голосов
/ 22 марта 2016

Я ошибаюсь, думая, что вы можете использовать:

$path = str_replace("/Users/user/Sites/MyWebsite", "localhost",$appPath);
echo($path);
//returns: localhost/application

Критика приветствуется.

...