OS X 本地主机上 PHP 的绝对路径问题
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
__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.我认为你可以使用:
欢迎批评,这是错误的吗?
Am I wrong in thinking you could use:
Criticism welcome.