Re: Does anyone use Glob?
- From: "Steve" <no.one@xxxxxxxxxxx>
- Date: Fri, 16 Nov 2007 12:05:41 -0600
"Tom Mackay" <nospam@xxxxxxxxxx> wrote in message
news:13jrknk5st2n2a4@xxxxxxxxxxxxxxxxxxxxx
"Steve" <no.one@xxxxxxxxxxx> wrote in message
news:5fk%i.698$Xp7.594@xxxxxxxxxxxxxxx
"Tom Mackay" <nospam@xxxxxxxxxx> wrote in message
news:13jrjgd3uhctbff@xxxxxxxxxxxxxxxxxxxxx
"Steve" <no.one@xxxxxxxxxxx> wrote in message
news:PYj%i.693$Xp7.184@xxxxxxxxxxxxxxx
"Tom Mackay" <nospam@xxxxxxxxxx> wrote in message
news:13jri2nqr1phc22@xxxxxxxxxxxxxxxxxxxxx
"Steve" <no.one@xxxxxxxxxxx> wrote in message
news:Spj%i.25$ug7.5@xxxxxxxxxxxxxxx
"Tom Mackay" <nospam@xxxxxxxxxx> wrote in message
news:13jrfeiaa8dscca@xxxxxxxxxxxxxxxxxxxxx
"Steve" <no.one@xxxxxxxxxxx> wrote in message
news:uqY_i.7$dY3.2@xxxxxxxxxxxxxxx
"Mike" <me@xxxxxxxxxxx> wrote in message
news:13jo2saj2oacnda@xxxxxxxxxxxxxxxxxxxxx
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>
not sure i've ever seen <label> tags before.
anyway, yes, you could do it that way pretty easily. on the other side,
you would:
$find = $_REQUEST['textfield'];
and then do your search.
btw, you didn't mention recursion in your search...as in, if there is a
sub directory in $path, do you search for $file in that sub dir?
Yes would like to have the sub directories included.
Thanks for the info above. I will have a read over what you have posted
and will see if i can put it together and get it to work.
I'm not as knowledgeable as you though so will probably take me a while :)
just look over the php functions used. the guts of it are here:
$wd = getcwd();
chdir($path);
$files = glob('index.php');
chdir($wd);
notice, i use GLOB_BRACE...look in the manual for why and you'll be golden.
as for directory recursion, let me know if you get stuck. is_dir() will help
as a hint...but you'll probably find many examples just by googling.
cheers.
.
- References:
- Does anyone use Glob?
- From: Mike
- Re: Does anyone use Glob?
- From: Steve
- Re: Does anyone use Glob?
- From: Tom Mackay
- Re: Does anyone use Glob?
- From: Steve
- Re: Does anyone use Glob?
- From: Tom Mackay
- Re: Does anyone use Glob?
- From: Steve
- Re: Does anyone use Glob?
- From: Tom Mackay
- Re: Does anyone use Glob?
- From: Steve
- Re: Does anyone use Glob?
- From: Tom Mackay
- Does anyone use Glob?
- Prev by Date: Re: Does anyone use Glob?
- Next by Date: Re: Open XML without the XSL
- Previous by thread: Re: Does anyone use Glob?
- Next by thread: Open XML without the XSL
- Index(es):
Relevant Pages
|