|
Posted by Tom Mackay on 11/16/07 17:06
"Steve" <no.one@example.com> wrote in message
news:PYj%i.693$Xp7.184@newsfe05.lga...
>
> "Tom Mackay" <nospam@nospam.com> wrote in message
> news:13jri2nqr1phc22@corp.supernews.com...
>>
>> "Steve" <no.one@example.com> wrote in message
>> news:Spj%i.25$ug7.5@newsfe02.lga...
>>>
>>> "Tom Mackay" <nospam@nospam.com> wrote in message
>>> news:13jrfeiaa8dscca@corp.supernews.com...
>>>> "Steve" <no.one@example.com> wrote in message
>>>> news:uqY_i.7$dY3.2@newsfe02.lga...
>>>>>
>>>>> "Mike" <me@privacy.net> wrote in message
>>>>> news:13jo2saj2oacnda@corp.supernews.com...
>>>>>> Hi
>>>>>>
>>>>>> Does anyone use glob to search?. I am wondering how good/effective
>>>>>> it
>>>>>> is
>>>>>>
>>>>>> http://de3.php.net/manual/en/function.glob.php
>>>>>
>>>>> i've been using it for years in the form of:
>>>>>
>>>>>
>>>>> function listFiles($path = '.', $extension = array(), $combine =
>>>>> false)
>>>>> {
>>>>> $wd = getcwd();
>>>>> $path .= substr($path, -1) != '/' ? '/' : '';
>>>>> if (!chdir($path)){ return array(); }
>>>>> if (!$extension){ $extension = array('*'); }
>>>>> if (!is_array($extension)){ $extension = array($extension); }
>>>>> $extensions = '*.{' . implode(',', $extension) . '}';
>>>>> $files = glob($extensions, GLOB_BRACE);
>>>>> chdir($wd);
>>>>> if (!$files){ return array(); }
>>>>> $list = array();
>>>>> $path = $combine ? $path : '';
>>>>> foreach ($files as $file)
>>>>> {
>>>>> $list[] = $path . $file;
>>>>> }
>>>>> return $list;
>>>>> }
>>>>>
>>>>
>>>> Hi
>>>> I just tried your script but nothing happens. What is it supposed to
>>>> do?
>>>
>>> list files in a directory...as in:
>>>
>>> ==============
>>>
>>> <?
>>> function listFiles($path = '.', $extension = array(), $combine = false)
>>> {
>>> $wd = getcwd();
>>> $path .= substr($path, -1) != '/' ? '/' : '';
>>> if (!chdir($path)){ return array(); }
>>> if (!$extension){ $extension = array('*'); }
>>> if (!is_array($extension)){ $extension = array($extension); }
>>> $extensions = '*.{' . implode(',', $extension) . '}';
>>> $files = glob($extensions, GLOB_BRACE);
>>> chdir($wd);
>>> if (!$files){ return array(); }
>>> $list = array();
>>> $path = $combine ? $path : '';
>>> foreach ($files as $file)
>>> {
>>> $list[] = $path . $file;
>>> }
>>> return $list;
>>> }
>>> $files = listFiles('c:/inetpub/wwwroot/images', 'jpg', true);
>>> $images = array();
>>> foreach ($files as $file)
>>> {
>>> $fileInfo = pathinfo($file);
>>> $handle = fopen($file, 'r');
>>> $fileInfo = array_merge($fileInfo, fstat($handle));
>>> fclose($handle);
>>> for ($i = 0; $i < 13; $i++){ unset($fileInfo[$i]); }
>>> echo '<pre>' . print_r($fileInfo, true) . '</pre>';
>>> }
>>> ?>
>>>
>>> ==============
>>>
>>> if you want to search for multiple extensions, then the listFiles arg
>>> would be an array...as in:
>>>
>>> array('jpg', 'gif', 'tif')
>>>
>>> make sense?
>>
>>
>> OK thanks.
>> FYI I have a similar list script i have been using for a while but
>> would like to replace this will a search instead of a full listing.
>> i.e. - search for file xxxx rather than going through the list to see if
>> it is present.
>>
>> <?php
>> $path = "/usr/local/apache/share/default/";
>> $dir_handle = @opendir($path) or die("Unable to open $path");
>> while ($file = readdir($dir_handle)) {
>> if($file == "." || $file == ".." || $file == "index.php" )
>> continue;
>> echo "<a href=\"$file\">$file</a><br />";
>> }
>> // Close
>> closedir($dir_handle);
>> ?>
>>
>> Any suggestions how to do this or point me in the right direction?.
>
> from you example above:
>
> $wd = getcwd();
> chdir($path);
> $files = glob('index.php');
> chdir($wd);
>
> that's it.
>
> if you were so inclined, just modify my listFiles function at this line:
>
> $extensions = '*.{' . implode(',', $extension) . '}';
>
> to:
>
> $extensions = '{' . implode(',', $extension) . '}';
>
> i'd also change the variable names to $find (was $extension) and $search
> (was $extensions). the only other change you'd need to note is when
> calling the function. if searching by extension, you'd have to include the
> asterisk yourself...
>
> array('*.jpg', '*.png', 'index.php')
>
> for example. that should list all jpg and png images and any file named
> index.php. see if that works for you.
The extension is always the same so i dont have to worry about that. How
would i include a search field into the script to allow me to enter the file
names into the page directly.
I am assuming this would be a normal form field?. i.e.
<form name="form" method="post" action="">
<label>search
<input type="text" name="textfield">
</label>
[Back to original message]
|