我在我的php中遇到一个小问题,我试图创建一个目录但是当代码运行时我收到错误消息
警告:mkdir()[function.mkdir]:没有这样的文件或目录
任何人都可以给我一些关于我在哪里出错的指导吗?
<?
function generateRandomString($length = 10) {
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
$Key = generateRandomString();
if(is_dir("Server1/".$Key) === true){
header("Refresh:0");
}
else
{
mkdir("Server1/".$Key);
echo $Key;
}
?>
答案 0 :(得分:1)
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
您需要将递归设置为true:
递归
允许创建路径名中指定的嵌套目录。
或者,如果您希望子路径存在,您可能需要检查路径是否正确。
答案 1 :(得分:0)
if(is_dir("Server1/".$Key) === true){
header("Refresh:0");
}
else
{
mkdir("Server1/".$Key);
echo $Key;
}
当目录"Server1/".$Key
不存在时,is_dir()
的调用失败,但当目录Server1
不存在时,它也失败。
另一方面,默认情况下,mkdir()
在不存在时不会创建中间目录。如果目录Server1
不存在,则is_dir()
将返回FALSE
,mkdir()
将失败,并显示错误消息“No such file or directory”。
这是有道理的,因为为了创建目录"Server1/".$Key
,它必须首先进入"Server1/"
目录并在其中创建子目录$Key
。
您可以将TRUE
作为mkdir()
的第三个参数传递来使其发挥作用:
mkdir("Server1/".$Key, 0777, TRUE);
答案 2 :(得分:0)
如果你的php脚本在“Server1”目录中,你不想在mkdir中使用“Server1”......
只需使用 MKDIR($密钥);