php include 路径的解决
时间:2009-07-19 来源:hkebao
php include 路径解决.
举个例子:(例子一)
根目录有1.php, 2.php, test/3.php,test/4.php 1.php和2.php同一文件夹里, 3.php,4.php在下级目录.
1.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内容:
D:\www\a
D:\www\b
D:\www\c
D:\www\d
结论:不管.php脚本怎么被包含,dirname(__FILE__)得到的都是脚本所在文件夹的绝对路径.
再回看例子1:
我们根据例子2来对例子1的3.php进行改动。
举个例子:(例子一)
根目录有1.php, 2.php, test/3.php,test/4.php 1.php和2.php同一文件夹里, 3.php,4.php在下级目录.
1.php内容:
- <?php
- # 1.php
- inlcude "test/3.php";
- ?>
- <?PHP
- # 3.php
- inlcude "4.php";
- include "../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内容:
- <?php
- # a.php
- echo dirname(__FILE__)."<br>";
- ?>
- <?php
- # b.php
- include "../a/a.php";
- echo dirname(__FILE__)."<br>";
- ?>
- <?php
- # c.php
- include "../b/b.php";
- echo dirname(__FILE__)."<br>";
- ?>
- <?php
- # d.php
- include " ../c/c.php";
- echo dirname(__FILE__)."<br>";
- ?>
D:\www\a
D:\www\b
D:\www\c
D:\www\d
结论:不管.php脚本怎么被包含,dirname(__FILE__)得到的都是脚本所在文件夹的绝对路径.
再回看例子1:
我们根据例子2来对例子1的3.php进行改动。
- <?php
- # 3.php
- $path=dirname(__FILE__); #定义好网站此目录的绝对地址值
- include $path."/4.php"; #
- include $path."/../2.php"; #我日呀。我居然将前面的一个/ 给忘掉了死也要记住
- ?>
相关阅读 更多 +