ホームページ  >  記事  >  バックエンド開発  >  frename PHP 柔軟なファイル命名関数 frename_PHP チュートリアル

frename PHP 柔軟なファイル命名関数 frename_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:44:491101ブラウズ

このような状況に対処するために、新しいファイルの名前をタイムスタンプで変更する方法や、シリアル番号をインクリメントする方法を使用する方法があります。この煩雑な操作を解決するために、最近、柔軟に取得できる frename 関数を作成しました。カスタム ルールに基づいてアップロードされるため、ファイルの新しい名前が共有されます。

コードをコピー コードは次のとおりです:

function frename($file, $rule='{timestamp}', $force = true) {
/* ---- --- ----------------
* author: m35
* date: 2009/8/11
* 操作を処理するための命名規則に従ってファイルの新しい名前を取得しますファイルのアップロードなど。ファイル名がすでに存在します
* @parm1 $file -- ファイルの物理パス
* @parm2 $rule -- 命名規則、デフォルトはタイムスタンプです
* @parm3 $force -- かどうかターゲット ファイルが存在しない場合、強制的に名前を付けます。デフォルトの強制は
* retrun str -- $rule に従って名前が付けられた新しいファイル パス
* 例:
echo 'デフォルト ルール (タイムスタンプ):' . frename(__FILE__);
echo '
シリアル番号増加ルール:' . frename(__FILE__, '{name}{n}'); br />n 個の先頭に 0 を付けるシリアル番号の増分ルール:' .frename( __FILE__, '{name}{5n}');
echo '
区切り文字あり _ 先頭に 0 が 3 つあるシリアル番号の増加ルール:' .frename(__FILE__, '{3n}<_>{name}');
echo '
の使用ルール時刻と日付の要素の組み合わせ:' .frename(__FILE__, '{ y}_{m}_{d}_{h}_{i}_{s}');短縮された時刻と日付の要素の組み合わせを使用します:' .frename(__FILE__ , '{Y}_{M}_{D}_{H}_{i}_{s}');その他のカスタムの組み合わせ:' .frename(__FILE__, '{ timestamp}_{name}<_>{n}');
---------- -- */
if (!$force && ! file_exists($file)) return $file;
$path = str_replace($filename, '', $file); suffix = substr($filename, strrpos($filename, '.'));
$name = str_replace($suffix, '', $filename);
$timestamp = time(); , $m, $M, $d, $D , $h, $H, $i, $s) =explode(',', date('Y,y,m,n,d,j,h,G) ,i,s'));
$tempname = str_replace(
array('{name}', '{timestamp}', '{y}', '{Y}', '{m}', '{M }'、'{d}'、'{D }'、'{h}'、'{H}'、'{i}'、'{s}')、
array($name, $timestamp, $ y, $Y, $m, $M, $ d, $D, $h, $H, $i, $s),
$rule
); /', $rule, $n)) {
preg_match('/$file = $path($ n[0], $sep[0])、array('', '')、$tempname)
if (!file_exists($file)) return $file; [0], $sep[1], $tempname );
$tname = $tempname;
do {
$nn = sprintf("%0{$n[1]}s") i);
$tempname = str_replace($n[0], $nn, $tname);
$file . $suffix;
while (file_exists($file));ファイル;
} else {
$file = $tempname . $suffix;
else return $tempname ;デフォルトのルール (タイムスタンプ):' . frename(__FILE__ );
echo '
シリアル番号の増加ルール:' . frename(__FILE__, '{name}{n}'); >先頭が 0 の n 個のシリアル番号増加ルール:' .frename(__FILE__, '{name}{5n}');
echo '
区切り文字付き with 3 先頭に 0 を付けて増分する規則:'
echo '
時刻と日付の要素の組み合わせを使用します:' .frename(__FILE__ , '{y}_{m}_{d}_{h}_{i}_{s}');
echo '
ルール省略形で時刻と日付の要素を組み合わせる場合:' .frename(__FILE__, '{Y}_{M}_{D}_{H}_{i}_{s}'); >その他のカスタムの組み合わせ:' .frename(__FILE__ , '{timestamp}_{name}<_>{n}');



http://www.bkjia.com/PHPjc/320483.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/320483.html

技術記事

この状況に対処するには、新しいファイルの名前をタイムスタンプで変更する方法と、シリアル番号をインクリメントする方法を使用する方法があります。この面倒な操作を解決するために、最近 frename 関数を作成しました...




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。