当前位置:  开发笔记 > 编程语言 > 正文

您如何知道在PHP require_once()语句中使用的正确路径

如何解决《您如何知道在PHPrequire_once()语句中使用的正确路径》经验,为你挑选了2个好方法。

我在许多其他php文件中都包含一个web应用程序根目录中的config.php文件.所以他们中的大多数都有这样一条线:

require_once("config.php");

或者有时候

require_once("../config.php");

甚至

require_once("../../config.php");

但是我第一次做对了.在读取其中一个文件时,我无法弄清楚php将会考虑当前的工作目录.它显然不是包含require_once()调用的文件的目录,因为我可以在同一目录中有两个文件,它们具有config.php的不同路径.

我有一种情况,其中一个路径是正确的刷新页面,但ajax可以更新页面的一部分需要一个不同的路径到require_once()语句中的config.php;

秘密是什么?从哪条路径评估?

拍摄,我担心这不会是一个常见的问题 - 这是在Windows 2.2上运行的apache 2.2.8和PHP 5.2.6下发生的.



1> 小智..:

PHP的当前工作目录是被调用脚本文件所在的目录.如果您的文件看起来像这样:

/A
   foo.php
   tar.php
   B/
       bar.php

如果你调用foo.php(例如:http://example.com/foo.php),工作目录将是/ A /.如果你调用bar.php(例如:http://example.com/B/bar.php),工作目录将是/ A/B /.

它有些棘手.让我们说foo.php是这样的:


而bar.php是:


如果我们调用foo.php,那么bar.php将成功调用tar.php,因为tar.php和foo.php在同一个目录中,恰好是工作目录.如果您改为调用bar.php,它将失败.

通常,您将在所有文件中看到:

require_once( realpath( dirname( __FILE__ ) ).'/../../path/to/file.php' );

或配置文件:

// config file
define( "APP_ROOT", realpath( dirname( __FILE__ ) ).'/' );

使用其余文件:

require_once( APP_ROOT.'../../path/to/file.php' );



2> bobwienholt..:

我喜欢这样做:

require_once(dirname(__FILE__)."/../_include/header.inc");

这样,您的路径始终可以相对于当前文件位置.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有