php include 路径解决. 举个例子 例子一) 根目录有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";?>
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就不会包错了. 问题出来了。飞飞Asp技术乐园 1: 对3.php来说,2.php的确是他的上级目录。飞飞~Asp技术乐园但会报错,改成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>";
?> b.php内容:
<?php
# b.php
include "../a/a.php";
echo dirname(__FILE__)."<br>";
?>
c.php内容:
<?php
# c.php
include "../b/b.php";
echo dirname(__FILE__)."<br>";
?>
d.php内容:
<?php
# d.php
include " ../c/c.php";
echo dirname(__FILE__)."<br>";
?>
运行d.php后会输出: 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";
?>
再运行1.php,就不会报错了.
|