2012-03-02 13 views
1

whileループから画像を取得し、ピリオド(。)で分割してImageName + -resizedに変更します。しかし、私はこれを行う方法を把握していないようです。どんな助けでも大歓迎です! image.jpgと私は、この画像resized.jpgを作成したい:whileループから画像を分割してPHPで名前を変更

だから要するに、私はこれを持ってここに私のコードです:

<?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

関連する問題