我有一个PHP脚本,可以根据表单创建一个文件夹。我想知道是否有一种方法可以创建并替换该文件夹(如果它已经存在)?
<?php
mkdir("QuickLinks/$_POST[contractno]");
?>
答案 0 :(得分:16)
您可以使用is_dir:
<?php
$path = "QuickLinks/$_POST[contractno]";
if(!is_dir($path)){
mkdir($path);
}
?>
答案 1 :(得分:3)
一般来说:
$dirname = "whatever";
if (!is_dir($dirname)) {
mkdir($dirname);
}
特别是:在进行涉及用户输入的文件系统(或任何其他类型的敏感)操作时要非常小心!当前的示例(创建一个目录)并没有留下大量的开放攻击面,但验证输入永远不会受到伤害。
答案 2 :(得分:3)
使用is_dir检查文件夹是否存在
$dir = "/my/path/to/dir";
if (!is_dir($dir)) {
if (false === @mkdir($dir, 0777, true)) {
throw new \RuntimeException(sprintf('Unable to create the %s directory', $dir));
}
}
注意不受控制的输入,这是非常危险的!
答案 3 :(得分:2)
您可以尝试:
<?php
if (!is_dir("QuickLinks/$_POST[contractno]"))
mkdir("QuickLinks/$_POST[contractno]");
?>
答案 4 :(得分:1)
答案 5 :(得分:1)
使用PHP的is_dir-function来检查是否已有目录,只有在没有目录时才调用mkdir-function。
答案 6 :(得分:0)
在使用POST变量创建目录之前,请先执行一些验证规则(regexp)!
if(!file_exists("QuickLinks/$_POST[contractno]"))
mkdir("QuickLinks/$_POST[contractno]");