php中的路径问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 08:42:49
遇到了一个很郁闷的问题:

在网站根目录有Files目录,我想在它下面再建一个b目录,用
mkdir("Files/bb/");
就可以执行,但用
mkdir("/Files/bb/");
就不可以。同时
require_once('../inc/config.php');可以执行,
require_once('/inc/config.php');就不可以了,不知道为什么?
是不是哪里没有设置好?

注:php环境:Windows2003 + Apache2.2.8 + PHP5.2.5
那我想知道:如何在PHP中实现类似ASP中的 /Files/a/ 的虚拟路径?

在PHP中的文件系统使用的路径是系统路径。并非像ASP那样的相对路径。。
在HTML 等语言中。/ 表示的是网站根目录。但在PHP里。/ 表示的是绝对路径的根路径。
举个例子:
www 目录是 d:\www 那么在 d:\www\index.php 引用一个文件。
include("/a.php");
将被视为 d:\a.php 而不是 d:\wwww\a.php
一般来说。所以在PHP中都是使用相对路径来引用文件。如果真的想从根本上解决这个问题。。你最好设置一个根路径常量。例如:

define("__ROOTDIR", "d:\www\");

在引用文件时这样写:incdule(__ROOTDIR."/a.php");

就不会有问题了。

你没有把相对路径和绝对路径弄清楚;

而mkdir("/Files/bb/"); 本身就是不正确的。

php里最好用一个变量代表当前目录
像其他的人都是用ROOTPATH

define("ROOTPATH", "../");
include(ROOTPATH."include/config.inc.php");