ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでの新しいファイルの自動番号付けのアイデアと実装

PHP_PHP チュートリアルでの新しいファイルの自動番号付けのアイデアと実装

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

要件: システムに新しいファイルを作成するときに、自動番号付けを実装できます。たとえば、新しいテキスト ファイルのデフォルトのファイル名は「New Text Document.txt」です。新しいテキスト ファイルの作成を続けると、ファイル名は自動的に「New Text Document (2).txt」に変更されます。は 3、4、5 になります...このアルゴリズムを PHP でどのように使用しますか?
当初はループを使用してそれを実行したいと考えていましたが、その後考えてカウンターを使用してインクリメントすることにしました。この TME はデータベース、ファイル、または構成ファイルにすることができます。やり方によって異なりますが、ループはメンテナンス中にのみ使用されます。新しいファイルを作成するたびにループする必要がある場合は、非常に面倒ですし、キャッシュがあちこちにあります

コードをコピーしてください。コードは次のとおりです。
$dir="/web/csp/images /test/";
if(!file_exists($dir.'cache.txt')){
file_put_contents($ dir.'cache.txt',1);
file_put_contents($dir.'新しい file.txt', '');
$num = file_get_contents($dir.'cache.txt'); num ++;
$name = '新しいファイル('.$num.').txt';
file_put_contents($dir.$name,'') );
}?>


シルバーの子供用靴を書き換えました


コードをコピーします:

function createFile($filename, $content = '') { if(file_exists($filename . '.tmp')) {
$num = (int) file_get_contents( $filename . '.tmp') + 1;
$fileinfo = pathinfo($filename); fileinfo['filename'] .'(' . $num . ').' .$fileinfo['extension' ], $content);
filename . '.tmp', $num);
{
file_put_contents($filename, $content);
}
}

3 番目のタイプ、円形



コードをコピー

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



$files = scandir('.') //このコードは Web ルート ディレクトリに書き込まれます
$num = 0;
$str = '新しいテキストドキュメント';
foreach ($files as $k=> $file) {
if (is_file($file) && preg_match('/(.*)((d+)) txt/', $file, $matched)) {
$num = $matched[2]>$num ? $matched[2] : $num; $filename = $num == 0 ? str . '(1).txt' : $str . '(' . ($num+1) . '). if (fopen($filename, 'w')) { echo 'ファイルが正常に作成されました:' . $filename; ?>

以下は、いくつかの新しいファイルを自動的に作成した後、
現在新しく作成されたファイルです。
新規ファイル.txt
新規ファイル(2).txt
新規ファイル(3).txt
これら3つのファイルを削除すると、
新規ファイル(2).txt
新規ファイル(3).txt
この2つはCache.txt のカウントの問題により、実行時の新しいファイルは
シーケンスに基づいてインテリジェントに作成されません。上記の操作により、Windows で新しく作成されるファイル名は
New file (2).txt

2. 2 番目の段落について
まず、上記の問題があるはずですが、さらに深刻なのは、作成されたファイルで、ファイル名と拡張子の間の区切り文字がありません...
つまり、
test.txt
test(2)txt
test(3)txt
test(4)txt
理由は、結合するときにファイル名、拡張子のドットは追加されません



コードをコピーします

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


file_put_contents ($fileinfo['filename'] . '(' . $num . ') ' .$fileinfo['extension'], $content);



もっと面白くて短いものを作成してください
上記のキャッシュ (tmp ファイル) や正規表現 (preg_match) を使用するよりもはるかに効率が向上します。


コードをコピーします

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


$prefix = '新しいテキストドキュメント'; $suffix = '.txt'; //新しいテキスト document.txt $i = 1; while(file_exists($t)){//新しいテキスト ドキュメント (d+).txt $ t = $prefix.'('.++$i.' )'.$suffix;
}
fclose(fopen($t, 'w'));

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/323770.html技術記事要件: システムに新しいファイルを作成するときに、自動番号付けを実装できます。たとえば、新しいテキスト ファイルを作成する場合、デフォルトのファイル名は New Text Document.txt になります。新しいテキスト ファイルの作成を続けると、ファイル名は自動的に変更されます:...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPデザインパターン インタプリタ(インタプリタモード)_PHPチュートリアル次の記事:PHPデザインパターン インタプリタ(インタプリタモード)_PHPチュートリアル

関連記事

続きを見る