-1

在我的根 html 目录中,我安装了 SMF,还安装了 CodeIgniter。我正在制作一个用于 CI 的 SMF SSI 自定义库,但在包含 SSI.php 文件时遇到了问题。这是我的 html 根目录的样子:

- html/root
  /forums (html/forums)
      -SSI.php
  /application
      /libraries
          -SMF.php(html/application/libraries)
  /system

那么在文件 application/libraries/smf.php 中,我将如何包含 SSI.php?这是我正在使用的,但它说找不到文件

include('.../forums/SSI.php');

4

6 回答 6

2

当您的文件进入html/application/libraries文件夹并且您要包含的文件进入html/forums文件夹时,您可以使用下面的代码来包含。

../../forums/SSI.php
于 2012-09-22T04:35:15.373 回答
1

要获取基本目录,请使用以下之一:

  $_SERVER['SERVER_NAME'];

或者:

  $_SERVER['DOCUMENT_ROOT'];
于 2012-09-22T04:29:03.153 回答
1

我不知道这在库中是否可用,但 FCPATH 通常指向您的 CI 根目录,而 APPPATH 通常指向您的应用程序目录。希望有所帮助,这些设置在 CI 根 index.php 文件中,您可以尝试回显它们以查看它们是否进入库,如果没有在其中添加设置器,例如

/**
 * Storage holder for the include files paths, is changed by $this->include_file()
 *
 * @access protected
 * 
 * @var string
 */
protected $_path;

/**
 * Sets the path for include files.
 *
 * @access private
 * 
 * @param string $path Path of files to include.
 */
private function set_path($path)
{
  $this->_path = $path;
}

// ------------------------------------------------------------------------

/**
 * Includes file.
 * 
 * @param  string $file Filename to include
 * 
 * @return void
 */
function include_file($file)
{
  include($this->_path . $file);
}

然后从 CI 范围设置它

<?php
  $this->library->set_path(FCPATH);
  $this->library->include_file('SI.php');

如果我理解你在寻找什么,这样的事情可能会奏效。

于 2012-09-22T07:14:05.077 回答
0

这是两个时期,而不是一个时期。一个代表当前目录,两个代表父目录,其他任何代表一个真实目录:

require_once('../{URL}');
于 2012-09-22T04:08:05.507 回答
0

你最好使用绝对路径。

include __DIR__ . '/../../forums/SSI.php';                             // php version >= 5.3 
include dirname(__FILE__) . '/../../forums/SSI.php'              //  php version < 5.3
于 2012-09-22T04:31:57.353 回答
0

采用

include_once FCPATH."forums/SSI.php";

FCPATH 是 CodeIgniter 安装的根目录

于 2017-11-09T14:05:00.787 回答