我想创建一个目录,如果它不存在。

使用is_dir函数就足够了吗?

if ( !is_dir( $dir ) ) {
    mkdir( $dir );       
}

或者我应该结合is_dir与file_exists?

if ( !file_exists( $dir ) && !is_dir( $dir ) ) {
    mkdir( $dir );       
} 

当前回答

$save_folder = "some/path/" . date('dmy');

if (!file_exists($save_folder)) {
   mkdir($save_folder, 0777);
}

其他回答

$year = date("Y");   
$month = date("m");   
$filename = "../".$year;   
$filename2 = "../".$year."/".$month;

if(file_exists($filename)){
    if(file_exists($filename2)==false){
        mkdir($filename2,0777);
    }
}else{
    mkdir($filename,0777);
}
$filename = "/folder/" . $dirname . "/";

if (file_exists($filename)) {
    echo "The directory $dirname exists.";
} else {
    mkdir("folder/" . $dirname, 0755);
    echo "The directory $dirname was successfully created.";
    exit;
}

这是一个老问题,但仍然是热门话题。只需要使用is_dir()或file_exists()函数测试是否存在。或. .在测试目录中的文件。每个目录必须包含以下文件:

is_dir("path_to_directory/.");    

在Unix系统上,两者都将返回true——在Unix中,所有东西都是一个文件,包括目录。但要测试该名称是否已被占用,您应该同时检查两个名称。可能会有一个名为“foo”的常规文件,这将阻止你创建一个名为“foo”的目录。

我也有同样的疑问,但请参阅PHP文档:

https://www.php.net/manual/en/function.file-exists.php

https://www.php.net/manual/en/function.is-dir.php

您将看到is_dir()具有这两个属性。

返回值is_dir 如果文件名存在且为目录,则返回TRUE,否则返回FALSE。