/**
* 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');
}