您可能最好定义几个不同的变量,因为拥有 URL 对包含等目的没有用处。你可以这样做:
DEFINE(HOST_NAME, $_SERVER['SERVER_NAME']);
DEFINE(WEB_SERVER_ROOT, $_SERVER['DOCUMENT_ROOT']);
DEFINE(APP_ROOT, __DIR__);
DEFINE(URI_BASE, str_replace(WEB_SERVER_ROOT, '', APP_ROOT);
if ($_SERVER['HTTPS'] == 'on') {
DEFINE(PROTOCOL, 'http');
} else {
DEFINE(PROTOCOL, 'https');
}
DEFINE(URL_BASE, PROTOCOL . '://' . URI_BASE);
对于包含,您可以执行以下操作:
include(APP_ROOT . '/modules/somefile.php');
对于输出图像、javascript、css 等链接,您可以使用以下内容:
<img src="<?php echo URL_BASE; ?>/images/someimage.jpg" />
<a href="<?php echo URL_BASE; ?>/somepage">Some Page</a>
<script type="text/javascript" src="<?php echo URL_BASE; ?>/js/somejs.js" />