php中的路径问题

Posted

tags:

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

遇到了一个很郁闷的问题:

在网站根目录有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");

就不会有问题了。
参考技术A 你没有把相对路径和绝对路径弄清楚;

而mkdir("/Files/bb/"); 本身就是不正确的。
参考技术B php里最好用一个变量代表当前目录
像其他的人都是用ROOTPATH

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

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

如何删除codeigniter路径中的“index.php”

如何删除codeigniter路径中的index.php?

requireonce 中的 PHP 绝对路径

更改 PHP 邮件函数中的返回路径

php中codeigniter中的应用程序路径

无法打开 WampServer 的配置文件,请更改 index.php 文件中的路径