Subversion Repositories svn.Prod repos

Rev

Rev 7 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. <?php
  2. # =============================================================================
  3. # Create
  4. # name  : Andre Rikkert de Koe          date:   apr 2011
  5. # descr : filefind
  6. #         This is a demo of programming in the PHP language (CLI).
  7. #         Its part of a project to implement a program to create a directory
  8. #         tree similar to the output of the Unix find program.
  9. # EUID  : Any user who has read access to all the files being searched for.
  10. # run   : interactive
  11. #
  12. # Changes
  13. # name  :                               date:
  14. # descr : short description
  15. #
  16. # =============================================================================
  17.  
  18. # =============================================================================
  19. # Functions
  20. # =============================================================================
  21.  
  22. function Usage($progname ,$mesg)
  23. {
  24.         echo "Usage: $progname directory\n";
  25.         echo "$mesg\n";
  26. }
  27.  
  28. function traverse($dir)
  29. {
  30.         $curdir = getcwd();
  31.         chdir($dir);
  32.         $curdir2 = getcwd();
  33.         $myDirectory = opendir(".");
  34.         # http://php.net/manual/fr/function.readdir.php
  35.         while (false !== ($file = readdir($myDirectory)))
  36.         {
  37.                 $pfile = $curdir2 . "/" . $file;
  38.                 if (is_dir($file) && !is_link($file))
  39.                 {
  40.                         if ($file != ".." && $file != ".")
  41.                         {
  42.                                 echo "$pfile\n";
  43.                                 traverse($file);
  44.                         }
  45.                 }
  46.                 else
  47.                 {
  48.                         if (is_file($file) || is_link($file))
  49.                                 echo "$pfile\n";
  50.                         else
  51.                                 echo "WARNING: Could not process file $pfile\n";
  52.                 }
  53.         }
  54.         chdir($curdir);
  55.  
  56. }
  57.  
  58. function start_traverse($directory)
  59. {
  60.         echo "$directory\n";
  61.         traverse($directory);
  62. }
  63.  
  64. # =============================================================================
  65. # MAIN
  66. # =============================================================================
  67.  
  68. $progname = $argv[0];
  69.  
  70. if ( $argc == 2 )
  71. {
  72.         $directory = $argv[1];
  73.         if (is_dir($directory))
  74.                 start_traverse($directory);
  75.         else
  76.                 Usage($progname, "ERROR: Not a directory : $directory");
  77. }
  78. else
  79.         Usage($progname, "ERROR: 1 argument expected");
  80.  
  81. ?>
  82.