【发布时间】:2015-04-24 19:55:57
【问题描述】:
我对正斜杠在 php 中的工作方式感到困惑。它是否返回网络根目录?还是电脑文件root?还是别的什么?
我尝试了几件事,例如,我在ubuntu服务器中的文件结构是这样的:
/var/www/html/domainname.com/.
--/config/.
--/core.php
--/images/.
--/includes/.
--/footer.php
--/header.php
--/navigation.php
--/index.php
这是工作(所有这些都包含在index.php中):
<img src="/images/logo.png" /> # in header.php
<a href="/">Home</a> # in navigation.php
<a href="/test/test.php">test</a> # in index.php itself
这不起作用:
<?php require_once('/config/core.php'); ?>
<?php include_once('/includes/header.php');?>
<?php include_once('/includes/navigation.php');?>
<?php include_once('/includes/footer.php');?>
为什么最后四个示例不起作用? “/”字符应该返回domainname.com 对吗?还是返回“/var/www/html/”?
我的目标是将所有需要包含在includes 目录中的文件。所以,即使.php文件存放在子目录下,每个.php文件都可以相对访问。
【问题讨论】:
-
相对于当前运行的脚本,加一个
.. -
那么,在
index.php的情况下,它会像那样返回/var/www/html/? -
不,只需检查您的
include_path设置,如果您以/开头,它将开始查看include_path设置。在您的情况下,它的../从您的脚本运行的位置移回一级 -
@BagolDaplun
/始终是/。/是根文件夹。对于 UNIX 操作系统,它.../!对于 Windows,它通常是C:,但有时 apache 会返回您的访问文件夹。可以肯定的是,始终使用相对路径。