Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php的绝对/相对路径包括_Php - Fatal编程技术网

php的绝对/相对路径包括

php的绝对/相对路径包括,php,Php,我在一个名为extract.php的文件中有一个包含许多php的函数(orders) 我有另一个文件(install.php)在同一个目录中调用这个函数,它工作得非常好 <?php include ("extract.php"); orders ("643443876996"); ?> 但是,当我在这个路径的另一个函数中包含它时 ,它给我的错误是找不到我的文件“datagrid.class.php” <?php include ("include('..

我在一个名为extract.php的文件中有一个包含许多php的函数(orders)

我有另一个文件(install.php)在同一个目录中调用这个函数,它工作得非常好

<?php
include ("extract.php");
orders ("643443876996");
?>

但是,当我在这个路径的另一个函数中包含它时 ,它给我的错误是找不到我的文件“datagrid.class.php”

    <?php
    include ("include('../application/dir1/dir2/dir3/extract.php');");
    orders ("643443876996");
    ?>

从服务器根目录引用,使用$\u server['DOCUMENT\u root']或

require_once(DATAGRID_DIR.'/application/dir1/dir2/dir3/DATAGRID.class.php')


等等。

相关文件总是从调用PHP二进制文件的目录中计算出来

为了避免使用
\uuuu FILE\uuuu
常量来引用实际文件

使用它,您可以编写以下内容:

$path = realpath(dirname(__FILE__)) . '/my/relative/path';

include_once $path;

无论脚本在何处调用,都将生成相同的路径。路径必须是绝对的,而不是相对的。尝试使用$_SERVER['DOCUMENT_ROOT']并从此处导航。您的意思是
include('../application/dir1/dir2/dir3/extract.php')?如果getorder.php./../中的错误与文档相关,则返回错误相对于文档根。当从其他位置调用函数时,它仍遵循相同的指令查找包含。如果您描述了相对于站点根目录的位置,则可以在调用函数的任何位置找到这些位置。/从站点根目录开始../从定义函数的文件位置开始。在需要的每个地方。我建议您将第一部分realpath(dirname(FILE)存储在主函数的常量(“MY_APP_ROOT”)中,并在其余文件中使用该常量。在MY_APP_ROOT中包含一次;
$path = realpath(dirname(__FILE__)) . '/my/relative/path';

include_once $path;