【问题标题】:PHP using dirname(__FILE__) on non-dedicated server?PHP 在非专用服务器上使用 dirname(__FILE__)?
【发布时间】:2010-07-28 08:02:49
【问题描述】:

我想做的是在配置文件中定义一个常量变量:

DEFINE("PATH", dirname(__FILE__) . "/");

所以,当我想“包含”或重定向时,我可以这样做:

include(PATH . "filename.php");

header("location: " . PATH . "logout/php");

但是当我尝试回显 PATH 时,我得到了这个结果:

/home/myDOMAIN/public_html

我是否错误地声明了常量? (老实说,我从 Wordpress 配置文件中复制了该代码)

【问题讨论】:

  • Alvaro:我不能输入“2 个下划线”,然后是一个单词。文本将变为粗体
  • 您可以使用“0101001”按钮格式化源代码。我已经为你编辑了问题。
  • 感谢 Alvaro 编辑并提供答案

标签: php path constants


【解决方案1】:

更新:

试试这个:

// sets site path for inclusion of files
define ('PATH', $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']));

更多信息:

http://php.net/manual/en/reserved.variables.server.php

【讨论】:

  • 嗨,我试过包含前缀,很奇怪,我得到了这个结果:/home/myDOMAIN/public_html/home/myDOMAIN/public_html
【解决方案2】:

__FILE__ 魔术常量包含 文件系统 路径,而不是 URL。您需要创建两个不同的常量,例如FS_ROOT 用于包含,WEB_ROOT 用于 URL。

在许多情况下,您已经在 $_SERVER 数组中拥有一个可以帮助您的内置值。运行print_r($_SERVER)一探究竟。

【讨论】:

    【解决方案3】:

    我猜这是你在服务器端的路径。

    【讨论】:

    • 那么我做错了吗?我尝试“include_once”,但收到了致命错误消息
    猜你喜欢
    • 2012-06-21
    • 2014-02-26
    • 1970-01-01
    • 2012-10-23
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多