note 47600 deleted from function.fnmatch by victor
| From: | victor@php.net | Date: | Fri, 19 Aug 2005 11:31:21 +0000 |
| Subject: | note 47600 deleted from function.fnmatch by victor | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-93888@lists.php.net to get a copy of this message | ||
Note Submitter: jcl [atNOSPAM] jcl [dot] name
----
Oooops, sorry, I did a mistake... Here is the right version :
function my_fnmatch ($pattern, $file)
{
$lenpattern = strlen($pattern);
$lenfile = strlen($file);
for($i=0 ; $i<$lenpattern ; $i++)
{
if($pattern[$i] == "*")
{
for($c=$i ; $c<max($lenpattern, $lenfile) ; $c++)
{
if(my_fnmatch(substr($pattern, $i+1), substr($file, $c)))
return true;
}
return false;
}
if($pattern[$i] == "[")
{
$letter_set = array();
for($c=$i+1 ; $c<$lenpattern ; $c++)
{
if($pattern[$c] != "]")
array_push($letter_set, $pattern[$c]);
else
break;
}
foreach($letter_set as $letter)
{
if(my_fnmatch($letter.substr($pattern, $c+1), substr($file, $i)))
return true;
}
return false;
}
if($pattern[$i] == "?") continue;
if($pattern[$i] != $file[$i]) return false;
}
if(($lenpattern != $lenfile) && ($pattern[$i - 1] == "?")) return false;
return true;
}
Cheers
Jean-Charles Lefebvre