php创建文件时存在文件自动重命名实现方法

php创建文件时存在文件自动重命名实现方法,实例代码如下:

  1. <?php
  2. function createfile($filename, $content = '')
  3. {
  4. $fp = file_put_contents($filename, $content);
  5. }
  6. // 要创建的文件名称
  7. $filename = 'www.txt';
  8. if(file_exists($filename))
  9. {
  10. // 打开当前目录
  11. $handle = opendir('./');
  12. $fileinfo = pathinfo($filename);
  13. //print_r($fileinfo);
  14. $files = array();
  15. while (false !== ($file = readdir($handle)))
  16. {
  17. if(preg_match_all("/{$fileinfo['filename']}(d*).{$fileinfo['extension']}/i", $file, $match))
  18. {
  19. $max = max($match[1]);
  20. if($max)
  21. {
  22. $createfile = $fileinfo['filename'] . ($max + 1) . '.' . $fileinfo['extension'];
  23. }
  24. else
  25. {
  26. $createfile = $fileinfo['filename'] . '1.' . $fileinfo['extension'];
  27. }
  28. }
  29. }
  30. createfile($createfile);
  31. }
  32. else
  33. {
  34. createfile($filename);
  35. }
  36. ?>

使用临时文件作记数器,方法二,实例代码如下:

  1. <?php
  2. function createfile($filename, $content = '')
  3. {
  4. if(file_exists($filename . '.tmp'))
  5. {
  6. $num = (int) file_get_contents($filename . '.tmp') + 1;
  7. $fileinfo = pathinfo($filename);
  8. file_put_contents($fileinfo['filename'] . '(' . $num . ')' .$fileinfo['extension'], $content);
  9. file_put_contents($filename . '.tmp', $num);
  10. }
  11. else
  12. {
  13. file_put_contents($filename, $content);
  14. file_put_contents($filename . '.tmp', 1);
  15. }
  16. }
  17. createfile('test.txt');
  18. ?>