php include 路径
解决.
举个例子:(例子一)
根目录有1.php, 2.php, test/3.php,test/4.php 1.php和2.php同一文件夹里, 3.php,4.php在下级目录.
1.php内容:-
- # 1.php
- inlcude "test/3.php";
- ?>
复制代码 3.php内容:- PHP
- # 3.php
- inlcude "4.php";
- include "../2.php";
- ?>
复制代码1。执行1.php , 会报错. 提示 3.php 找不到"../2.php";
2。如果把"../2.php"改成"2.php",执行1。php就不会包错了.
问题出来了。
1: 对3.php来说,2.php的确是他的上级目录。但会报错,改成include "2.php",运行正常. 结论是,相对地址就以运行的脚本(1.php)为准。相当与把3.php的代码先写到1.php然后再执行。
2:上面说以1.php为准,4.php在1.php的下级目录,那么3.php 是不是要改成include "test/4.php"呢? 结果证明改动后,会提示找不到 test/4.php。
再来看个例子:(例子二)
根目录下,有如下文件,
a/a.php, b/b.php, c/c.php, d/d.php;
a.php内容:
-
- # a.php
- echo dirname(__FILE__)."
";
- ?>
复制代码 b.php内容:-
- # b.php
- include "../a/a.php";
- echo dirname(__FILE__)."
";
- ?>
复制代码 c.php内容:-
- # c.php
- include "../b/b.php";
- echo dirname(__FILE__)."
";
- ?>
复制代码 d.php内容:-
- # d.php
- include " ../c/c.php";
- echo dirname(__FILE__)."
";
- ?>
复制代码运行d.php后会
输出: dirname(__FILE__); 这个东西绝是是你当前脚本的绝对位置值
D:\www\a
D:\www\b
D:\www\c
D:\www\d
结论:不管.php脚本怎么被包含,dirname(__FILE__)得到的都是脚本所在文件夹的绝对路径.
再回看例子1:
我们根据例子2来对例子1的3.php进行改动。
-
- # 3.php
- $path=dirname(__FILE__); #定义好网站此目录的绝对地址值
- include $path."/4.php"; #
- include $path."/../2.php"; #我日呀。我居然将前面的一个/ 给忘掉了死也要记住
- ?>
复制代码再运行1.php,就不会报错了.
阅读(845) | 评论(0) | 转发(0) |