繁体   English   中英

包含来自不同目录的文件

[英]Including Files from Different Directories

所以我有这些文件:

/
|
+ include/
|   |
|   + database.php
|
+ cart/
|   |
|   + table.php
|
+ cart.php

我的cart.php显示的页面包含一个由table.php(包含文件)生成的表。 我为表分隔文件的原因是因为我必须在cart.php中执行某些操作后再次生成表 - 删除当前表并使用Ajax加载新表。 但是,我的table.php文件有这一行:

require_once("include/database.php");

这是非常有问题的,因为当cart.php中包含该文件时,该路径是有意义的。 但是当它自己被调用时,当前目录将是cart /并且cart /中没有包含目录。

有什么方法可以解决这个问题吗? 我想避免使用大的绝对路径。 有可能告诉PHP包括/应该总是搜索文件,无论它在哪里被调用? 它是,我应该在哪里(在哪个文件中)?

在这种情况下,我建议在常量中定义应用程序的(绝对)根路径,例如,将其添加到config / bootstrap中:

// Absolute path to your application's root directory
define('APP_ROOT', '/var/www/vhosts/example.com/httpdocs');

然后你可以包括使用那个常量,如:

require_once(APP_ROOT . '/include/database.php');

如果您使用的是.htaccess,则可以设置包含路径

的.htaccess:

php_value include_path "/path/to/include/"

php文件:

require_once get_include_path().'file.php';


另一种方式

require_once($_SERVER['DOCUMENT_ROOT']."/include/database.php");

在table.php中

require_once('../include/database.php');

好吧,重读你的问题,看起来你想要autoload ,但我们没有足够的信息来确定你的类是否以有利于自动加载的方式设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM