我在一个名为extract.php的文件中有一个包含许多php的函数(orders)
http://example.com/application/dir1/dir2/dir3/extract.php
function orders ($username)
{
require ("functions.inc.php");
define("DATAGRID_DIR", "./../datagrid/");
define("PEAR_DIR", "./../datagrid/pear/");
require_once (DATAGRID_DIR . 'datagrid.class.php');
require_once (PEAR_DIR . 'PEAR.php');
require_once (PEAR_DIR . 'DB.php');
require_once ('./../datagrid/classes/database.class.php');
//function code here
}
我有另一个文件(install.php)在同一目录中调用此函数,它运行良好。
<?php
include ("extract.php");
orders ("643443876996");
?>
然而,当我将它包含在此路径中的另一个函数中时 http://example.com/orders/getorder.php,它给我一个错误,它无法找到我的文件'datagrid.class.php';
<?php
include ("include('../application/dir1/dir2/dir3/extract.php');");
orders ("643443876996");
?>
如何让路径引用正确?
答案 0 :(得分:1)
来自服务器根目录的引用,使用$ _SERVER ['DOCUMENT_ROOT']或
require_once(DATAGRID_DIR。'/ application / dir1 / second2 / dir3 / datagrid.class.php');
等...
答案 1 :(得分:1)
相对文件总是从调用PHP二进制文件的目录计算。
为避免您可以使用__FILE__
常量来引用实际文件。
使用它你可以这样写:
$path = realpath(dirname(__FILE__)) . '/my/relative/path';
include_once $path;
无论脚本在何处被调用,它总是会产生相同的路径