filehelper.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. //获取两个目录下的相同路径的文件数
  3. function getSameFile($src, $test, $path=''){
  4. $result = array();
  5. $as = listFile($src.$path);
  6. $ts = listFile($test.$path);
  7. $ds = array_intersect($as, $ts);
  8. foreach($ds as $item){
  9. $si = $src.$path.$item;
  10. $ti = $test.$path.$item;
  11. if(is_dir($si) && is_dir($ti)){
  12. $result = array_merge($result, getSameFile($src, $test, $path.$item.'/'));
  13. }else if(is_file($si) && is_file($ti)){
  14. if(substr($si, -3) == '.js')
  15. array_push($result, $path.$item);
  16. }
  17. else{
  18. // print("error : $si");
  19. }
  20. }
  21. return $result;
  22. }
  23. //获取只在src中存在的文件,防止遗漏用例
  24. function getSrcOnlyFile($src, $test, $path=''){
  25. $result = array();
  26. $as = listFile($src.$path);
  27. $ts = listFile($test.$path);
  28. foreach($as as $item){
  29. $si = $src.$path.$item;
  30. $ti = $test.$path.$item;
  31. if(is_dir($si) && is_dir($ti)){
  32. $result = array_merge($result, getSrcOnlyFile($src, $test, $path.$item.'/'));
  33. }else if(is_file($si) && !is_file($ti)){
  34. if(substr($si, -3) == '.js')
  35. array_push($result,$path.$item);
  36. }
  37. else{
  38. // print("error : $si");
  39. }
  40. }
  41. return $result;
  42. }
  43. function listFile($dir){
  44. $as = array();
  45. if($dh = opendir($dir)){
  46. while(($file = readdir($dh))!==false){
  47. if(substr(basename($file), 0, 1) == '.')
  48. continue;
  49. array_push($as, basename($file));
  50. }
  51. closedir($dh);
  52. }
  53. return $as;
  54. }
  55. ?>