strpos($file, 'jpg') letar ju upp första matchningen av jpg i $file. Du behöver en funktion som hittar den sista istället. Utan att kunna allt för mycket PHP tycker jag att strripos($file, 'jpg') skulle vara rätt i det här fallet. Testa!
Jag har ett problem. :l
Jag har installerat ett contrib till oscommerce som ska hjälpa till att hitta produktbilder som inte används i en webbshop.
Bilderna har formatet:
filename1.jpg
filename1.jpg.thumb_120x90.jpg
filename1.jpg.thumb_240x180.jpg
(Urbota dumt, ja...)
Jag vill exkludera alla filer med "thumb" ur sökresultatet. Man kan ange ett "pattern" för detta:
// Remove images matching pattern from the check, ie put 'thumb' to exclude all images with 'thumb' as part of the name (or directory).
$pattern = 'thumb';
Kodsnutten som hämtar ut filnamnen:
function GetImageListFromServer($dir,&$files)
{
$dp=opendir($dir);
while (false!=($file=readdir($dp)))
{
// ******** AZERISH enleve gifs if( strpos($file, 'jpg') || strpos($file, 'gif') || strpos($file, 'png') ){
if( strpos($file, 'jpg') ){
$locn = $dir.'/'.$file;
$str = sprintf("%s", $locn);
$files[] = $str;
}
}
closedir($dp);//close the folders
}
Jämförelsen med "pattern":
if (tep_not_null($pattern)) {
sort($files);// server file list
for ($i = 0; $i < count($files); ++$i) // remove any pattern matched images from the server list
{
if (strpos(strtolower($files[$i]),strtolower($pattern))) { unset($files[$i]); }
}
}
PROBLEMET är ju att funktionen GetImageListFromServer hämtar ut filnamnet genom att stanna vid första förekomsten av "jpg". Enligt mitt exempel på filnamn så hinner den ju aldrig hämta "thumb"... Hur ändrar jag så att HELA filnamnet kommer med och kan jämföras med "pattern" sen?
