【问题标题】:Define absolute path for files定义文件的绝对路径
【发布时间】:2011-04-14 15:12:12
【问题描述】:

我有以下包含文件..

require_once ("config.php");
require_once ("functions.php");
require_once ("session.php");

我想为我的包含文件定义绝对路径。我尝试了以下代码,但没有运气..

请您帮忙定义一个合适的绝对路径,以便 require_once 符合预期。

    defined('DS') ? null : define('DS',DIRECTORY_SEPARATOR);
    defined('SITE_ROOT') ? null: define('SITE_ROOT',DS.'PHP_Files'. DS . 'phpsandbox'. DS.'my_mat'. DS.'my_test');
    defined('LIB_PATH')?null:define('LIB_PATH',SITE_ROOT.DS.'includes');

    require_once(LIB_PATH.DS."config.php");
    require_once(LIB_PATH.DS."functions.php");
    require_once(LIB_PATH.DS."session.php");

我系统中这3个包含文件存放在J:\PHP_Files\phpsandbox\my_mat\my_test\includes中。

提前致谢!

【问题讨论】:

  • 另外,不要这样滥用三元运算符。如果您必须使用短语法,请改用ORdefined('DS') OR define('DS', DIRECTORY_SEPARATOR);
  • 我是 php 新手。所以我很难理解你的意思。如果您能详细解释一下,那就太好了。我正在检查常量 DS 是否已定义。如果没有定义,我正在定义它..如果有什么问题,我很乐意学习

标签: php


【解决方案1】:

好的,所以我认为您正在寻找的是实际的系统文件路径。要做到这一点,您可以回显

dirname( __FILE__ ); 

您可以在任何您想要的文件中执行此操作,它将显示相对于您的文件的系统文件路径。对我来说是这样的:

/home2/myusername/public_html/project_name/includes/config.php

所以如果你对“project_name”文件夹感兴趣,你应该有这样的东西:

defined("SITE_ROOT") ? null : define("SITE_ROOT", DS . "home2" . DS . "myusername" . DS . "public_html" . DS . "project_name" );

然后,如果您正在寻找将成为您的库的“includes”文件夹,您应该有这样的东西:

defined("LIB_PATH")  ? null : define("LIB_PATH", SITE_ROOT . DS . "includes" );

希望这会有所帮助。我遇到了完全相同的问题,这对我有用。

干杯,米海波帕

【讨论】:

    【解决方案2】:

    尝试在包含路径中包含您的 LIB_PATH。

    set_include_path(LIB_PATH . DS . PATH_SEPARATOR . get_include_path());
    

    【讨论】:

      【解决方案3】:
      require_once(dirname(__FILE__).DS."config.php");
      require_once(dirname(__FILE__).DS."functions.php");
      require_once(dirname(__FILE__).DS."session.php");
      

      看看,我觉得不错

      【讨论】:

        【解决方案4】:

        您需要realpath 函数。此外,您可以获取 get_included_files 包含的所有文件,这些文件返回您在调用函数时包含的文件的绝对路径数组。

        defined('DS') or define('DS',DIRECTORY_SEPARATOR);
        $disk_label = '';
        if (PHP_OS == 'WINNT') {
            if (FALSE !== ($pos = strpos(__FILE__, ':'))) {
                $disk_label = substr(__FILE__, 0,$pos+1);
            }
        }
        defined('SITE_ROOT') or define('SITE_ROOT', $disk_label.DS.'PHP_Files'. DS . 'phpsandbox'. DS.'my_mat'. DS.'my_test');
        defined('LIB_PATH') or define('LIB_PATH',SITE_ROOT.DS.'includes');
        
        require_once(LIB_PATH.DS."config.php");
        require_once(LIB_PATH.DS."functions.php");
        require_once(LIB_PATH.DS."session.php");
        

        【讨论】:

          猜你喜欢
          • 2011-07-09
          • 1970-01-01
          • 2017-10-22
          • 2011-01-26
          • 2011-09-17
          • 1970-01-01
          • 2014-06-27
          • 2021-10-18
          • 1970-01-01
          相关资源
          最近更新 更多