0

我在 PHP 中定义的绝对路径有一些问题。我这样定义 SITE_ROOT and 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

有没有这样做的非kludgy方式?

我的用例是使用与 HTML 相呼应的APP_PATH(已用于执行所有 my require()'s 的)以避免href's 的 URL 中的相对路径问题。

4

2 回答 2

1

常量包含文件路径,仅此__FILE__而已。查看$_SERVER['REQUEST_URI']$_SERVER['HTTP_HOST']找出用于调用脚本的 URL。这是必须由启动 PHP 脚本的 Web 服务器(例如 Apache)提供的环境信息,它不是 PHP 本身就知道的。

于 2010-10-06T06:27:30.373 回答
0

我认为您可以使用:

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

欢迎批评。

于 2016-03-22T10:16:43.130 回答