OS X 本地主机上 PHP 的绝对路径问题

发布于 2024-09-26 03:08:12 字数 772 浏览 7 评论 0原文

我在 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()'s)使用 HTML 来避免 href 的 URL 中出现相对路径问题。

I'm having some issues with defined absolute paths in PHP. I define the SITE_ROOT and APP_PATH like so:

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

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

When using the APP_PATH in an application like so:

echo APP_PATH;

...this is what I get:

/Users/user/Sites/MyWebsite/application

What I want is for the output to be:

localhost/application

Is there any non-kludgy way of doing this?

My use case is to use the APP_PATH (already in use for doing all my require()'s) echoed out with HTML to avoid relative pathing problems within URLs for href's.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一百个冬季 2024-10-03 03:08:12

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

The __FILE__ constant contains the file path, nothing else. Look at $_SERVER['REQUEST_URI'] and $_SERVER['HTTP_HOST'] to find out what URL was used to invoke the script. This is environment information that must be supplied by the web server that initiated the PHP script (e.g. Apache), it's not something PHP inherently knows.

长伴 2024-10-03 03:08:12

我认为你可以使用:

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

欢迎批评,这是错误的吗?

Am I wrong in thinking you could use:

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

Criticism welcome.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文