php - 正斜杠 "/"在 php 中实际上是如何工作的?

标签 php include slash

我对 php 中的正斜杠如何工作感到困惑。它返回网络根吗?或者电脑文件根目录?还是别的什么?

我尝试了几件事,例如,我在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 文件都可以相对访问它们。

最佳答案

现在我明白了。正斜杠 /.php.html 文档中的工作方式不同。

.php文件中,/表示计算机的根文件夹,在unix和C:中为/在 Windows 中,就像 Forien 在评论中所说的那样。但是,在 .html 文件中,/ 表示网站的根文件夹或在我的情况下 /var/www/html/domainname.com/ 。这就是为什么我对 lmho 感到困惑。

所以,这段代码:

<a href="/">Home</a>
<img src="/images/logo.png" />

将在/var/www/html/domainname.com/中查找,即使它是写在.php文件中的。因为 .php 文件将其作为 .html 文件发送到浏览器。这同样适用于:

<?php echo '<a href="/">Home</a>'; ?>

上面的这个仍然在 /var/www/html/domainname.com/ 中查找,因为 .php 文件将其回显为 .html文件到网络浏览器。

但是,这会有所不同:

<?php require_once '/includes'; ?>

它将在 unix 中的 / 或 windows 中的 C: 中查找。因为 .php 文件在服务器计算机上工作。这就是为什么最后一个不起作用。服务器根目录中没有 /includes 目录。因此,为了使其正常工作,我必须使用它:

<?php require_once $_SERVER['DOCUMENT_ROOT'].'/includes'; ?>

如果我是正确的话,这就是我的结论。

关于php - 正斜杠 "/"在 php 中实际上是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28674696/

相关文章:

php - 如何使用 php 代码在 WHM/Cpanel 中以编程方式创建数据库?

c++ - 永久且可靠地设置 gcc 全局包含路径

linux - 如何在系统级别将目录添加到 Perl 库路径?

python - 带有 Splash 的 CrawlSpider

javascript - Discord.js v13 选项中的选择 - 斜线命令

php - array_combine 可能有不相等数量的元素吗? Foreach 的替代品?

php - 空格的正则表达式,但不是转义空格

php - 如何在 php 中回显斜杠?

php - 将 PHP 应用程序转换为 Cocoa 的教程?

rust - 多个可执行文件使用私有(private)模块的正确位置