/** * fname * * @param string $f * @param string $name * @param int $register * @param int $i * @param bool $overwrite * @return string */ public function fname($f = '', $name = '', $register = 0, $i = 0, $overwrite = false) { // [replace=from,to] - replace // [n=0] - meter // [f] - type // [name] - name // [date] - date // [rand=8,16] - random // $f = rawurldecode($f); $info = pathinfo($f); $info['dirname'] = IOWrapper::get($info['dirname']); $info['basename'] = IOWrapper::get($info['basename']); $info['extension'] = IOWrapper::get($info['extension']); $info['filename'] = IOWrapper::get($info['filename']); if (preg_match_all('/\\[replace=([^,]),([^\\]])/U', $name, $arr, PREG_SET_ORDER)) { foreach ($arr as $var) { $name = str_replace($var[1], $var[2], $info['filename'] . '.' . $info['extension']); } } if (preg_match_all('/\\[n=*(\\d*)\\]/U', $name, $arr, PREG_SET_ORDER)) { foreach ($arr as $var) { $name = str_replace($var[0], $var[1] + $i, $name); } } if (preg_match_all('/\\[rand=*(\\d*),*(\\d*)\\]/U', $name, $arr, PREG_SET_ORDER)) { foreach ($arr as $var) { $name = str_replace($var[0], mb_substr(str_shuffle(Config::get('Gmanager', 'rand')), 0, mt_rand(!empty($var[1]) ? $var[1] : 8, !empty($var[2]) ? $var[2] : 16)), $name); } } $name = str_replace('[f]', $info['extension'], $name); $name = str_replace('[name]', $info['filename'], $name); $name = str_replace('[date]', strftime('%d_%m_%Y'), $name); if ($register == 1) { $tmp = mb_strtolower($name); } elseif ($register == 2) { $tmp = mb_strtoupper($name); } else { $tmp = $name; } if (!$overwrite && self::$_instance->file_exists($info['dirname'] . '/' . $tmp)) { return Helper_View::message(Language::get('overwrite_false') . ' (' . htmlspecialchars($info['dirname'] . '/' . $tmp, ENT_NOQUOTES) . ')', Helper_View::MESSAGE_ERROR); } if (self::$_instance->rename($f, $info['dirname'] . '/' . $tmp)) { return Helper_View::message($info['basename'] . ' - ' . $tmp, Helper_View::MESSAGE_SUCCESS); } else { return Helper_View::message(Errors::get() . ' ' . $info['basename'] . ' -> ' . $tmp, Helper_View::MESSAGE_ERROR_EMAIL); } }