mkdir() 可在伺服器建立目錄。預設只建立單層,遞迴建立需啟用 $recursive = true(PHP 5.0+)。搭配 file_exists() 或 is_dir() 先判斷避免錯誤。
mkdir(string $directory, int $permissions = 0777, bool $recursive = false, resource $context = null): bool
<?php
$dir = "/temp/test";
if (is_dir($dir)) {
echo "目錄已存在\n";
} else {
if (mkdir($dir, 0755, true)) {
echo "目錄建立成功\n";
} else {
echo "建立失敗(權限不足或路徑錯誤)\n";
}
}
?>
首次執行:目錄建立成功 再次執行:目錄已存在
0755:擁有者讀寫執行,群組/其他讀執行(目錄常用)0777:所有人完整權限(不安全,避免使用)mkdir("/var/www/project/runtime/cache", 0755, true);
Permission denied:父目錄無寫入權限File exists:同名檔案已存在(非目錄)No such file or directory:父路徑不存在且未啟用 recursiveuse League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;
$fs = new Filesystem(new Local('/var/www'));
$fs->createDirectory('project/runtime/cache', ['visibility' => 'public']);
善用 recursive=true 並設定適當權限,避免目錄建立失敗。