php 文件引用路径的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 文件引用路径的问题相关的知识,希望对你有一定的参考价值。

网站结构如图

require.php中的内容如下
<?
require 'class/a.class.php';
require 'class/b.class.php';
require 'c.class.php';
?>
然后在index.php中写require 'require/require.php';就可以使用a、b、c三个类

现在问题来了
require.php中,看a、b的引用,路径应该是相对require.php来看的
但是在引用c的时候,如果也是相对与require.php,不是应该写成require '../c.class.php';么??
但是这样写就报错了
有人能解释下么!

参考技术A 关键是要知道你这个c.class.php到底是在require.php中引用呢,还是a或b中引用。
在require.php引用,那么路径是“../c.class.php”。在a或b中的一个,那么路径是“../../c.class.php”追问

c是在require.php中引用,然后require.php被index.php引用
但是在require.php中引用c“../c.class.php”的写法会报错,必须写成上面问题中的路径
你可以测试下

追答

那你干嘛不在index.php中引用c跟require呢,效果都一样的啊

参考技术B 为什么要这样写的,自动加载不行吗?使用autoload,然后使用namespace不就简单方面高达上吗?追问

我只是想知道原因,结果并不是关键

参考技术C 建议你看下spl_autoload_register()追问

我只是想知道原因,结果并不是关键

追答

你贴一下报错信息

追问

麻烦了

如果把c的引用写成

require 'c.class.php';就没有问题

php.ini的载入位置

php.ini文件找不到,载入WINDOS下的,但找不到,后来强制-c查找是OK的。思考,为什么载入window下的ini文件。1.可能是有一个默认路径。2.可能没有路径。默认载入。


问题解决:http://php.net/manual/zh/configuration.file.php,,中有具体介绍php.ini的引用问题,寻找注冊表。使用执行-》regedit,打开注冊表hkey-local-machine-software-php,可是我的电脑里面php是在PHPstudy集成环境中装的,所以在注冊表中没有,所以ini的搜索路径依据优先级是使用

  • Windows 文件夹(C:\windows 或 C:\winnt)。或 --with-config-file-path 编译时选项指定的位置。


另一个载入配置文件的位置:应该是在所使用php下的php.ini文件,可是找不到。自己主动载入了D:\\360下载  里面的php.ini文件,将所载入的文件重命名就可以解决





以上是关于php 文件引用路径的问题的主要内容,如果未能解决你的问题,请参考以下文章

Python的模块引用和查找路径

Python引用模块和查找模块路径

php 路径的理解

php.ini的载入位置

php引用另一个页面的内容

路径 php中'.'和'..'还有'./'和'../'