Php mkdir问题

Php mkdir问题,php,mkdir,Php,Mkdir,当我试图创建新目录时,我总是收到这个恼人的消息。我的职能是 Warning: mkdir() [function.mkdir]: No such file or directory in 函数从另一个目录执行:我的结构如下所示: mkdir("../".$a."/".$b); $a = an existing filepath $b = new folder i wish to create 大家好,谢谢大家的热烈回应 mkdir($a."/".$b); 无论“./$a”是什么,都没有这

当我试图创建新目录时,我总是收到这个恼人的消息。我的职能是

Warning: mkdir() [function.mkdir]: No such file or directory in
函数从另一个目录执行:我的结构如下所示:

mkdir("../".$a."/".$b);

$a = an existing filepath
$b = new folder i wish to create
大家好,谢谢大家的热烈回应

mkdir($a."/".$b);

无论
“./$a”
是什么,都没有这样的目录,不管您希望有多少。可能有一个符号链接,
不是你认为它是的目录。

不管
。/$a“
是什么,都没有这样的目录,不管你希望有多少。可能有一个符号链接,
不是您认为的目录。

根据您的函数包含方式,PWD可能在任何地方。最好使用绝对路径

您还可以使用
\uuuu DIR\uuuu
(v5.3+)或
dirname(\uuuu FILE\uuuu)

比如说

C:\wamp\www\book\admin\import //is my __DIR__ for that script
C:\wamp\www\book\admin\property // already exists

C:\wamp\www\book\admin\property\name // want i want end result

请参见

根据功能的包含方式,PWD可以在任何位置。最好使用绝对路径

您还可以使用
\uuuu DIR\uuuu
(v5.3+)或
dirname(\uuuu FILE\uuuu)

比如说

C:\wamp\www\book\admin\import //is my __DIR__ for that script
C:\wamp\www\book\admin\property // already exists

C:\wamp\www\book\admin\property\name // want i want end result


请参见

ok cool。父文件夹的路径是否为../正确?所以b=../好的,很酷。父文件夹的路径是否为../正确?那么b=../这是从命令提示符运行的普通PHP脚本吗?它是否包含在其他脚本中?您可以使用
dirname(\uu\u FILE\uu)
trying…立即检查脚本认为当前目录是什么。它是/htroot/site/c文件中脚本的一部分,用于检查dirname要说什么如果您使用的是PHP5.3,
\uuuuuuu DIR\uuuuu
是quickerI,我在我的答案中添加了一个示例,其中包括@hobbs答案中提出的一个要点(重符号链接),这是从命令提示符运行的普通PHP脚本吗?它是否包含在其他脚本中?您可以使用
dirname(\uu\u FILE\uu)
trying…立即检查脚本认为当前目录是什么。它是/htroot/site/c文件中脚本的一部分,用于检查dirname必须说什么如果您使用的是PHP5.3,
\uuuuuuu DIR\uuuuuu
是quickerI。我在我的答案中添加了一个示例,其中包括@hobbs答案(重符号链接)Oops中提出的一个要点,再次对其进行了更改。记得在某些环境中看到realpath在不存在的路径上失败,因此从函数中删除了
$b
call@Phil真棒的回答者。我目前正试图实现你的答案。但是,我回显$newDir来检查它的值,它显示的是c:\wamp\book\admin\property/name@claw那很好。PHP可以在Windows中互换使用正斜杠或反斜杠。如果您想彻底了解,请使用
DIRECTORY\u SEPARATOR
代替任何斜杠。或者你指的是你问题中提到的缺失的“www”?@Phil sweet。使用目录分隔符。仍然收到警告:mkdir()[function.mkdir]:没有这样的文件或目录。请原谅我的无知,如果目录不存在,为什么PHP不直接创建它呢?@claw是的,你能澄清一下正确的路径应该是什么吗
C:\wamp\book\…
或者应该是
C:\wamp\www\book\…
Oops,再次更改它。记得在某些环境中看到realpath在不存在的路径上失败,因此从函数中删除了
$b
call@Phil真棒的回答者。我目前正试图实现你的答案。但是,我回显$newDir来检查它的值,它显示的是c:\wamp\book\admin\property/name@claw那很好。PHP可以在Windows中互换使用正斜杠或反斜杠。如果您想彻底了解,请使用
DIRECTORY\u SEPARATOR
代替任何斜杠。或者你指的是你问题中提到的缺失的“www”?@Phil sweet。使用目录分隔符。仍然收到警告:mkdir()[function.mkdir]:没有这样的文件或目录。请原谅我的无知,如果目录不存在,为什么PHP不直接创建它呢?@claw是的,你能澄清一下正确的路径应该是什么吗
C:\wamp\book\…
还是应该是
C:\wamp\www\book\…
// use realpath to resolve any symbolic links
$newDir = realpath(__DIR__ . '/../' . $a) . '/' . $b;
mkdir($newDir);