frename PHP の柔軟なファイル命名関数 frename

WBOY
リリース: 2016-07-29 08:40:46
オリジナル
1402 人が閲覧しました

このような状況に対処するために、新しいファイルの名前をタイムスタンプで変更する方法や、シリアル番号をインクリメントする方法を使用する方法があります。この煩雑な操作を解決するために、最近、柔軟に取得できる 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}');
区切り文字 _先頭に 3 つの 0 を含むシリアル番号の増分ルールがあります:' frename(__FILE__ , '{3n}<_>{name}');
echo '
時刻と日付の要素の組み合わせを使用するためのルール:' . frename(__FILE__, '{y}_{m}_{d} _{h}_{i}_{s}');
echo '
省略された時刻と日付の要素の組み合わせを使用するためのルール:' . frename(__FILE__, '{Y}_{M}_ {D}_{H}_{i}_{s}');
echo '
その他のカスタムの組み合わせ:' 。 (__FILE__, '{タイムスタンプ}_{名前}<_> {n}');
---------------------- */
if ( !$force && !file_exists($file)) $file を返します;
$filename = Basename($file);
$suffix = substr($filename); strrpos($filename, '.'));
$name = str_replace($suffix, '', $filename);
$timestamp = time(); $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
);
if (preg_match('/{(d?)n}/', $rule, $ n)) {
preg_match('/<([^> ;]+)>/', $tempname, $sep);
$file = $path(array($n[0], $sep) [0])、array('', '')、$ tempname) . $suffix;
if (!file_exists($file)) return $file; 1]、$tempname);
$tname = $tempname;
do {
$nn = sprintf("%0{$n[1]}s", $i); str_replace($n[0], $nn, $tname);
$file = $tempname . $suffix;
return $file; $file = $path . $suffix;
if (file_exists($file)) return $path;
}
echo 'デフォルトのルール (タイムスタンプ) . frename(__FILE__);
echo '
echo '
n 先頭に 0s:' . frename(__FILE__, '{name}{ 5n}');
echo '
区切り文字 _ を使用します。 0s:' . frename(__FILE__, '{3n}< _>{name}');
echo '
時刻と日付の要素の組み合わせを使用するためのルール:' . frename(__FILE__, '{y} _{m}_{d}_{h}_{i }_{s}');
echo '
短縮された時刻要素と日付要素の組み合わせを使用するためのルール:' frename(__FILE__, '{ Y}_{M}_{D}_{H} _{i}_{s}');
echo '
その他のカスタムの組み合わせ:' . frename(__FILE__, '{timestamp}_{名前}<_>{n}');


上記では、PHP の柔軟なファイル命名関数 frename をさまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!