【问题标题】:Problem with including a file包含文件的问题
【发布时间】:2011-06-17 01:47:23
【问题描述】:

我收到了这个错误

[28-Jan-2011 09:49:03] PHP Warning:  require_once(../../includes/database.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/photo/application/php/classes/users.php on line 2

[28-Jan-2011 09:49:03] PHP 致命错误:require_once() [function.require]:无法打开所需的“../../includes/database.php”(include_path='.: /Applications/MAMP/bin/php5.3/lib/php') 在第 2 行的 /Applications/MAMP/htdocs/photo/application/php/classes/users.php 中

我想包含的文件在

/Applications/MAMP/htdocs/photo/application/includes/database.php

我确定文件在那里,我已经检查,双重检查,三重检查 这是 users.php 中的第 2 行

require_once '../../includes/database.php';

可能是什么问题

【问题讨论】:

  • 在 require_once 之前打印出pwd 以查看您实际所在的目录。
  • @pascal:看起来不像..
  • 你可以试试这个,require_once (dirname(__FILE__).'/../../includes/database.php');

标签: php


【解决方案1】:

在主文件中试试这个(例如 index.php)

define('BASEPATH', realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR);

然后

require_once(BASEPATH.'../../includes/database.php');

使用完整路径总是一个好主意。

ps:这是一个例子,路径可能是错误的。

【讨论】:

    【解决方案2】:

    默认包含路径是相对于调用文件的(. 是路径)。

    示例目录结构:

    index.php
    foo.php
    bar.php
    /assets/foo.php
           /bar.php
    

    如果您的index.php 来电

    include 'assets/foo.php';
    

    one/foo.php 通话

    include 'bar.php';
    

    相当于index.php调用

    include 'assets/bar.php';
    

    如果您希望所有包含都来自同一上下文,则需要使用根相对路径(@yoda 有一个很好的例子)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 2018-05-16
      相关资源
      最近更新 更多