【发布时间】:2014-09-04 20:45:05
【问题描述】:
不知道该怎么做。
我想要一种包含 PHP 文件的方法,以便我可以从任何级别文件夹中的任何文件中调用相同的文件,并且它始终指向相同的文件。
所以我有一个网站设置,例如
root
init.php
databaseconn.php
index.php
/css/
main.css
/settings/
user_profile.php
/template/
sidebar.php
/includes/
get_user.php
例如,在 user_profile.php 中,我包含了 sidebar.php 文件。
现在我会使用:
../template/sidebar.php
然后在侧边栏文件中添加 ../includes/get_user.php。
效果很好。然而问题是我的 index.php 页面上也包含了相同的 sidebar.php 文件。这会导致问题。
为了解决这个问题,我试过这个:
<?php
$isDevelopment = true;
$baseInclude = ($isDevelopment ? '//localhost/website/' : '//www.site.com/');
?>
然后当包含我使用过的站点中的任何文件时:
include $baseInclude. 'template/sidebar.php';
但是,当我这样做时,我得到了一个错误。
错误显示:
Warning: include(//localhost/website/template/sidebar.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/website/settings/user_profile.php on line 46
我不明白为什么它在显示时会在 user_profile.php 文件中查找该文件,并且我已经定义它来自 localhost 路径...
有什么想法吗?
【问题讨论】:
-
为什么不通过 DIR 定义 init.php 中的根路径(不是粗体,下划线废话 - 愚蠢的 stackoverflow 格式)并使用定义的相对路径常数
-
除此之外:通过 http 包含文件将不起作用,除非包含不需要来自调用脚本的任何信息并且除了 html 之外不返回任何内容。问题是它将在不同的请求中单独处理。
标签: php path absolute-path