Re: Skipping items in a loop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



jekillen wrote:
> Hello again;
> I have a directory that I am opening and reading to produce an
> array of contents; files and subdirectories. There are a number
> of subdirectories that I do not want to open and read the contents
> of, and others that I do want to open and read the contents of.
> This code is supposed to produce two arrays. One with directories
> and the other with files, including the path. This is so I can create
> the directories and copy the files. Certain files are specific to the
> source  directory structure and I do not want them copied.

create an array of dir name/paths you want to skip and then use in_array()
to determine if the current directory matches one of the items
you want to skip.

> 
> The only way I can think of is to loop though the $dir_only array
> to see if it matches an item in the $dirs array so I can have the
> code by pass it.  But that is in the middle of a while loop that is
> already in the middle of a loop. I have not been able to get it to
> work as I want.
> using php 5.1.2
> 
> Does anyone have a better suggestion (that will work in the
> context of this code, I do not want to do major rewriting if I
> can avoid it).
> Thanks in advance
> Jeff k
> 
> The code follows:
>                            $cont = array();
>                            $dir_only = array();
>                            $dir_only[0] = 'jk/collections';
>                            $dir_only[1] = 'jk/extras';
>                            $dir_only[2] = 'jk/group_info';
>                            $dir_only[3] = 'jk/group_routes';
>                            $dir_only[4] = 'jk/groups_in';
>                            $dir_only[5] = 'jk/in';
>                            $dir_only[6] = 'jk/log';
>                            $dir_only[7] = 'jk/out';
>                            $dir_only[8] = 'jk/requests';
>                            $dir_only[9] = 'jk/store';
>                           $dirs = array();
>                           $dirs_a = array();
>                           $files = array();
>                           $cltag = '?'.'>'; // <- for php closing tag.
> If I do it literally, it screws up the syntax coloring in my code editor.
>                           $rd = opendir('jk') or die("Could not open jk
> as source dir");
>                           while($x = readdir($rd))
>                                {
>                                 if($x == '..' || $x == '.')
>                                    {
>                                     continue;
>                                     }
>                                   else
>                                    {
>                                     array_push($cont, 'jk/'.$x);
>                                    }
>                                 }
>                            closedir($rd);
>                            unset($rd);
>                            unset($x);
>                            for($i = 0; $i < count($cont); $i++)
>                               {
>                                if(is_dir($cont[$i]))
>                                  {
>                                   array_push($dirs, $cont[$i]);
>                                  }
>                                elseif(is_file($cont[$i]))
>                                  {
>                                   array_push($files, $cont[$i]);
>                                  }
>                                }
>                            for($i = 0; $i < count($dirs); $i++) // looks
> at dirs
>                               {
>                                 @$rd = opendir($dirs[$i]) or die("Could
> not open $dirs[$i]");
>                                   while($x = readdir($rd))
>                                        {
>                                         if($x == '..' || $x == '.')
>                                           {
>                                             continue;
>                                           }
>                                          elseif(is_file($dirs[$i].'/'.$x))
>                                            {
>                                              array_push($files,
> $dirs[$i].'/'.$x);
>                                            }
>                                          elseif(is_dir($dirs[$i].'/'.$x)
> && $x != "")
>                                            {
>                                              array_push($dirs_a,
> $dirs[$i].'/'.$x);
>                                            }
>                                         }
>                                   closedir($rd);
>                                   unset($rd);
>                                   unset($x);
>                               };
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux