Засичане на разширението на файла

vinsbg

Registered
Здравейте,
ще се опитам да обясня, какво искам да направя и дано ме разберете :)
Значи имам следната заявка и изкарвам резултатите -> малка снимка с линк към съответната игра. Дотук добре.
Код:
$sql = "SELECT id, name, nameid, description, width, height, img, type FROM games LIMIT 0, 60 ";

$out = '';
foreach ($dbh->query($sql) as $row)
{
    $out .= "<dl>";
    $out .= "<dt><a href=\"upload/games/".$row['nameid'].".".$row['type']."\"><img src=\"upload/img/".$row['img']."\" /></a></dt>";
    $out .= "</dl>";
}
$dbh = null;
?>
Името на снимката(img) съответства на името, което е в полето ( 'nameid' ). Снимките обаче са в различен формат png/jpeg, но в базата са без разширенията. Това, което питам дали може да се направи е когато изважда снимката да я взимам от 'nameid', и да я изкарва, като само добави разширението.
За пример:
Имам игра, която се казва -> hell.swf
В полето 'nameid' е запазено само -> Hell
Снимката -> Hell.png, но може да е и Hell.jpeg

Идеята е, че снимките, които са към игрите не са добавени в базата, а ще се добавят ръчно една по една, а те са над 4к .. ако започна една по една ще ми отнеме много време. Затова понеже са с еднакви имена помислих дали не е възможно някаква такава функция? Дали е възможно това да стане или не?
 
Пробвай така, това ще пробва всеки изброен формат и ако е съществуващ файл ще го изкара :)
PHP:
$file = "upload/img/".$row['img'];
$razshireniq = array("png","jpg","jpeg","gif");
$image = "";
foreach($razshireniq as $ext)
{
    if(file_exists($file . ".". $ext))
   {
       $image = $file . ".". $ext;
   }
}

echo $image ;
:?:
 
Едит:
Оправих се. Вместо $row['img'] -> $row['nameid'].
Всичко работи коректно. Благодаря! :?:
 
Еми ще го промениш малко :D
PHP:
$imageName = $r['img'];
$dir = "upload/img";
$image = "";
$handle = opendir($dir);
while($file = readdir($handle))
{
  if(preg_match("/".$imageName."/i", $file))
  {
	$image =  $dir."/".$file;
  }
}
echo $image;

100% работи, пробвах го :D[/code]
 

Back
Горе