2012-03-02 2 views
1

Я пытаюсь получить изображения из цикла while и разделить их на период (.) .., а затем изменить имя изображения на ImageName + -resized. Но я не могу понять, как это сделать. Любая помощь будет принята с благодарностью!Разделение изображений из цикла while и переименование в php

Так короче у меня есть это: image.jpg и я хочу, чтобы создать этот образ-resized.jpg: Вот мой код:

<?php 
    $f = $_GET['f']; 
    $h = $_GET['h']; 
    $gp = $_GET['gp']; 
    //Create folder path 
    $path = "Fotos/".$f."/".$h."/".$gp."/"; 
    //Get pictures from database 
    $getfolders = mysql_query("SELECT FolderName, Files FROM Files WHERE FolderDate = '$f' AND FolderHour = '$h' AND FolderName = '$gp'") or die(mysql_error()); 
    //List pictures from database 
    while($row = mysql_fetch_array($getfolders)){ 
     $img = $row['Files']; 
     //Seperate image at period(.) 
     $image = explode('.', $img); 
     //Get image name ----------------Here is where I need help!! 
     for($i = 0; $i < sizeof($image); $i++) 
      { 
      $imag = $image[$i]; 
      } 
     ?> 
    <div class="picture" id="pic"><img src="<?php echo $path; echo $imag ?>" alt="picture" /><?php echo $img?></div> 
     <?php 
     } 
    ?> 

ответ

1

Ну, самое простое решение будет:

$image = explode('.', $img); 
$extension = array_pop($image); 
$resizedFileName = implode('.', $image) . "-resized.{$extension}"; 

Но это решение действительно предположить, что существуют только простые расширения:

image.jpg => image-resized.jpg // ok 
image.tar.gz => image.tar-resized.gz // not so ok 

Но если есть только простые extensi Это решение может быть достаточным.

Лучшим решением будет использовать SplFileInfo:

$fi = new SplFileInfo($image); 
$resizedFileName = $fi->getBasename("." . $fi->getExtension()) . "-resized." . $fi->getExtension(); 

SplFileInfo::getExtensions() доступен, начиная с PHP 5.3.6

+0

Спасибо так много! – liveandream

Смежные вопросы