【问题标题】:defining directory path using realpath() function in php在 php 中使用 realpath() 函数定义目录路径
【发布时间】:2015-08-26 18:26:14
【问题描述】:

我需要为应用程序定义一些目录路径。

文件夹设置

config.php 位于根目录之外的 config 文件夹中(最佳实践,在某处阅读)。应用程序放置在根目录中(在本例中为 myCms)。现在我在本地服务器(xampp)上。

config.php 具有程序运行所需的一些配置和少量凭据。

如前所述,我需要在 config.php 文件中定义一些目录(图像、模板、系统等)。我之前将它们定义为

define('DIRIMAGES','C:/xampp/htdocs/myCms/images/', false);

我打算使用realpath() 函数来完成工作并尝试了这个

define('DIRIMAGES', str_replace('\\', '/',realpath(dirname(__FILE__))).'/images/', false);

后来我将config.php包含在index.php中(myCms文件夹中的index.php)并回显检查目录的路径并显示

C:/xampp/htdocs/config/system/

我在哪里寻找:

C:/xampp/htdocs/myCms/system/

您能提出建议或帮助吗?

【问题讨论】:

  • 你试过__DIR__吗?
  • 这是因为__DIR____FILE__ 都与写入它们的文件相关,而不是与包含它们的文件相关。

标签: php


【解决方案1】:

__FILE__ 指的是当前正在处理的文件。如果你移动你的配置文件,你生成的所有路径也会改变。

如果您使用的是 PHP 5.3+,则可以使用 __DIR__ 而不是 dirname(__FILE__)

要生成 myCms 的 images 子目录的路径,您可以这样做(如果您的配置文件在 config 文件夹中!)

define('DIRIMAGES', realpath(__DIR__ . '/../myCms/images/'));

所以你从 config 开始,然后到你的根文件夹(包含你的 config 和 myCms 文件夹),然后进入 myCms,最后进入图像。

【讨论】:

  • 在拉斯克拉特指出之后,我也有同样的想法。谢谢你。我会试试你的建议。
  • 我建议将realpath(__DIR__ . '/../myCms') 存储在一个单独的定义中,以便它可以轻松地用于您的其他路径。
  • 当然...并且会在尝试后返回结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
相关资源
最近更新 更多