php html 路径问题,绝对/相对路径:PHP和HTML之间的根本差异

我目前正在尝试将我的phpBB安装整合到我正在构建的自定义CMS中。 phpBB在其许多功能中都依赖于一个名为$phpbb_root_path的变量,它在幕后(包括其他PHP等)以及创建前端超链接和图像链接。绝对/相对路径:PHP和HTML之间的根本差异

的phpBB的做法是包括以下代码每个PHP文档:

define('IN_PHPBB', true);

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'forums/';

print_r(dirname(__FILE__));

$phpEx = substr(strrchr(__FILE__, '.'), 1);

require_once($phpbb_root_path . 'common.' . $phpEx);

require_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);

的$phpbb_root_path变量然后根据相对于论坛文档的位置改变。这是一种正常运行的方法,但是我希望通过require_once代替单独的.php文件中的代码,以避免我的自定义模板系统出现问题,因此我不必将相同的代码复制到每个文档中我有。

症状:上面的代码,如果包含的话,将罚款只要包括文档工作,我文档根目录(其中/论坛/是一个子目录),但它总是会打破其他地方,或者如果与.htaccess url_rewrite一起使用。

问题:它不可能简单地定义为$phpbb_root_path“/论坛/”或“/〜(USERID)/论坛/”,这将是显而易见的,简单的解决方案。为什么?因为HTML和PHP认为是根(主要的斜杠)之间存在差异。

通过打印dirname(__FILE__)我确定我的PHP安装以/home/(USERID)/public_html/为根。但是,HTML(显然)以root身份需要WWW.DOMAIN.COM。

正如你可以想像,这导致问题:

1)如果我定义$phpbb_root_path为/home/(USERID)/public_html/,PHP的一部分(包括等)的工作,但打印HTML的任何功能将导致的screwups,像连接到(WWW.DOMAIN.COM)/home/(USERID)/public_html/(link to image)。

2)如果我将$phpbb_root_path定义为/forums/,页面将不会显示,因为PHP将尝试在与“/ home /”相同的级别上找到名为“/ forums /”的目录。

问:是否有一个简单/巧妙的方式通过attuning PHP的根是/home/(USERID)/public_html/删除PHP/HTML根文件夹定义之间的这种差异,例如?或者我没有任何选择,只能在每个文档中包含代码,并根据文档的位置使用相对路径?

2014-01-28

ividyon

+0

phpBB是非常不合时宜的。对于初学者来说,对于初学者来说,使用名称空间和自动加载器以及适当的路由,只需要在站点索引中定义根目录。 [例子](https://github.com/MartyWallace/Tempest/blob/master/index.php) –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值