PHP创建文件重名.重新命名文件算法(0 位领导批示)
- 2009-08-6
- 分类:PHP&MySql
- 作者:银子
- 775 位领导视察
原问题: http://bbs.blueidea.com/thread-2942989-1-1.html
随便写了一个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php function createFile($filename, $content = '') { $fp = file_put_contents($filename, $content); } // 要创建的文件名称 $filename = 'www.txt'; if(file_exists($filename)) { // 打开当前目录 $handle = opendir('./'); $fileinfo = pathinfo($filename); //print_r($fileinfo); $files = array(); while (false !== ($file = readdir($handle))) { if(preg_match_all("/{$fileinfo['filename']}(\d*)\.{$fileinfo['extension']}/i", $file, $match)) { $max = max($match[1]); if($max) { $createfile = $fileinfo['filename'] . ($max + 1) . '.' . $fileinfo['extension']; } else { $createfile = $fileinfo['filename'] . '1.' . $fileinfo['extension']; } } } createFile($createfile); } else { createFile($filename); } ?> |
另一种思路..使用临时文件作记数器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php function createFile($filename, $content = '') { if(file_exists($filename . '.tmp')) { $num = (int) file_get_contents($filename . '.tmp') + 1; $fileinfo = pathinfo($filename); file_put_contents($fileinfo['filename'] . '(' . $num . ')' .$fileinfo['extension'], $content); file_put_contents($filename . '.tmp', $num); } else { file_put_contents($filename, $content); file_put_contents($filename . '.tmp', 1); } } createFile('test.txt'); ?> |















