/**
* Makes directories if they do not exist
*
* @param array $dirs array of directories
* @return bool if TRUE and error array if FALSE
*
*/
function mkdir_if_not_exist($dirs) {
$err = array();
if (is_array($dirs)) {
foreach ($dirs as $dir) {
if (!is_dir($dir)) {
if (!mkdir($dir)) {
$err[] = "Directory {$dir} could not be created.";
}
}
}
if (count($err) > 1) {
$err = implode('<br>', $err);
count($err) > 2 ? $err .= 'Check if you have permission to make folders on the server' : '';
$err = explode($err);
}
} else {
trigger_error('Array is required for function ' . __FUNCTION__, E_USER_ERROR);
}
if (!empty($err)) {
// return errory array
return $err;
} else {
return TRUE;
}
}
这是我编写的一个简单函数,用于获取目录数组并检查它们是否存在,如果不存在则创建它们,如果在创建它们时出现问题,则添加错误。如果有多个目录“无法创建”,我希望能够在值之间添加换行符,如果有超过 2 个错误,我想添加一条附加消息。并将其重新包装为数组。我不断收到错误,我不确定我做错了什么。
我计划以下列方式访问它:
$dir = array('this', 'that');
$out = mkdir_if_not_exist($dir);
if (is_bool($out)) {
echo 'success'
} else {
// output array
echo implode('', $out);
}
更新:
if (count($err) > 1) {
$err = implode('<br>', $err);
$err = explode('<br>', $err);
$err = array_push($err, 'Check if you have permission to make folders on the server');
}