Posted By

VisionHive on 09/01/12


file search name find subdirectories subdirectory

Versions (?)

Who likes this?

1 person have marked this snippet as a favorite


Find a file (including subdirectory search)

 / Published in: PHP


This function searches the current working directory (or any other directory path that you specify with parameter $p) for a file, named $f, and returns the full path and filename of the first occurrence, or false if it is either not found or the maximum number of comparisons is reached. The return value is relative to the executing script, so you can safely pass this function to other file-handling functions, e.g. fopen(FFIND("my.file")); or file(FFIND("my.file"));

  1. function FFIND($f,$p=null,$l=1000)
  2. { // Recursively find a file $f in directory $p (compare up to $l files)
  3. // Returns the full path of the first occurrence (relative to current directory)
  4. // (c) Peter Mugane Kionga-Kamau
  5. // Free for unrestricted use with this notice and description unaltered.
  6. $cd=$p==null?getcwd():$p;
  7. if(substr($cd,-1,1)!="/")$cd.="/";
  8. if(is_dir($cd))
  9. {
  10. $dh=opendir($cd);
  11. while($fn=readdir($dh))
  12. { // traverse directories and compare files:
  13. if(is_file($cd.$fn)&&$fn==$f){closedir($dh);return $cd.$fn;}
  14. if($fn!="."&&$fn!=".."&&is_dir($cd.$fn)){$m=ffind($f,$cd.$fn,$l);if($m){closedir($dh);return $m;}}
  15. }
  16. closedir($dh);
  17. }
  18. return false;
  19. }

Report this snippet  

You need to login to post a comment.