【问题标题】:Absolute file path in PHP for linking assetsPHP中用于链接资产的绝对文件路径
【发布时间】:2015-08-29 21:08:31
【问题描述】:

我一直在为自己建立一个简单的框架,用于 PHP 项目。

我的基本文件夹结构目前从根目录如下:

  • 根文件夹
    • package.json
    • gruntfile.js
    • node_modules
      • index.php
        • about.php
        • contact.php
      • 部分
        • header.php
        • footer.php
      • js
      • CSS

因为我将所有页面都存储在他们自己的目录中,但 index.php 就在页面目录之外,所以我本质上要寻找的是一种获取 index.php 绝对路径的方法,我可以然后存储在一个变量中并调用站点内的任何链接,例如样式表或 javascripts。

所以我的问题基本上就是如何做到这一点。我目前正在使用 MAMP 作为我的 localhost 环境,请随时向我询问有关我可能错过的问题的任何其他信息。

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 你试过__FILE__吗?
  • 看看php.net/manual/en/language.constants.predefined.php。我想,__FILE__ 应该可以解决问题
  • 如果你想获取你的索引文件所在的文件夹,那么你可以使用dirname(__FILE__)。我还建议你使用realpath。这就是你所需要的。
  • @Jacobian __DIR__ 相当于dirname(__FILE__),它从 5.3 开始就存在了。会给出当前文件的目录。

标签: php


【解决方案1】:

从外观上看,您的 index.php 也是您设置 Apache DocumentRoot 的位置?

如果我理解正确,您可以使用 PHP 的 $_SERVER 变量,您会感兴趣的是 $_SERVER["DOCUMENT_ROOT"]

另一方面,您提到您想将此变量用于 CSS 和 Javascript 文件?从客户端来看,使用绝对文件路径是不可能的,但您宁愿需要一个相对路径(因为客户端又名浏览器,无法查看您的 Web 服务器的文件系统)。

如果您对这个框架很认真,我还建议您研究诸如MVC 之类的设计模式。并且还考虑实现一个FrontController 来调度你的所有请求。这将使您能够更好地控制路径以及解析文件的方式。

【讨论】:

  • 我已经研究过 MVC 与 Angular 之类的东西,但我在该领域仍然是新手。我真正要寻找的只是我的页面的基本 PHP 路由系统。
  • @kkslider 你试过我的建议了吗?它应该可以帮助您入门。请记住,服务器端和客户端是两个不同的视角,您不能对两者使用完全相同的变量。
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 2011-06-29
  • 2017-03-09
  • 2011-06-12
  • 2020-08-07
  • 2010-12-17
  • 2020-04-26
  • 1970-01-01
相关资源
最近更新 更多