【问题标题】:PHP find require_once real pathPHP 查找 require_once 真实路径
【发布时间】:2013-03-23 01:39:55
【问题描述】:

我需要 require_once 这个文件 main.class.phpfunctions.phpconfig.phpadmin/test.php。如何 php 查找需要真实路径?!

注意:main.class.phpclass folder 中,functions.phpincludes folderconfig.phproot 目录和 test.phpadmin folder

文件目录:

root
    /admin/
        ->test.php 
    /class/
        ->main.class.php
    /includes/
        ->functions.php
    /templates
    config.php
    phpinfo.php

【问题讨论】:

  • 为什么不把/root放到你的include_path中,那么就只有require('class/main.class.php')等等?
  • @HamZa DzCyber​​DeV:是的!我正在寻找最好的方法。

标签: php require-once realpath


【解决方案1】:

我会将您的 root 文件夹添加到包含路径并从那里开始工作。

来自admin/test.php

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(__DIR__ . '/..'),
    get_include_path()
)));

require_once 'class/main.class.php';
require_once 'includes/functions.php';
require_once 'config.php';

更新

如果我正确地关注了你的问题,假设你想在config.php 文件中定义它,你会做这样的事情

config.php

set_include_path(implode(PATH_SEPARATOR, array(
    __DIR__,
    get_include_path()
)));

require_once 'class/main.class.php';
require_once 'includes/functions.php';

admin/test.php

require_once __DIR__ . '/../config.php';

【讨论】:

  • 这个有用且漂亮的答案。可以/如何将您的方法放入“定义”并放入配置文件,然后放入 myfiles?
【解决方案2】:

这是一个不依赖于 $_SERVER 变量的解决方案:

require_once(__DIR__.'/../class/main.class.php');
require_once(__DIR__.'/../includes/functions.php');
require_once(__DIR__.'/../config.php');

【讨论】:

  • 仅供参考,__DIR__ 魔法常数自 5.3.0 以来一直存在。 __DIR__ === dirname(__FILE__)
【解决方案3】:

来自admin/test.php,您需要这样:

require_once("../class/main.class.php");
require_once("../includes/functions.php");
require_once("../config.php");

【讨论】:

  • 完全没有,也不认为这是一种攻击。我只是不明白你的意思。放松 :)
猜你喜欢
  • 2011-04-03
  • 1970-01-01
  • 2013-10-08
  • 2015-01-18
  • 2012-03-27
  • 1970-01-01
  • 2023-04-01
  • 2012-12-22
  • 2010-09-16
相关资源
最近更新 更多