2012-08-16 74 views
-1

我有一段代碼有一些錯誤,我一直在尋找整天...這(應)做的是:通過文件夾中的所有文件,檢查如果它是圖像類型,如果是,則在某個文件夾中創建縮略圖。它完成這項工作但是:它不會繼續下去,我放了一個回聲命令並且它從未執行過。我apprechiate任何幫助!非常感謝。PHP文件處理,代碼永遠不會到達

$bilddateitypen  = array('gif','jpg','JPG','GIF'); 

$importdir   = '../sync'; 
if ($handle = opendir($importdir)) { 
    while (($file = readdir($handle)) !== false) { 
     if (!is_dir($importdir."/".$file) && is_file($importdir."/".$file)) { 
      $ex = explode('.',$file); 
      if(in_array($ex[count($ex)-1], $bilddateitypen)) { 

       $file = utf8_decode($file); 
       $thumbnail = new thumbnail($importdir."/".$file); 
       $thumbnail->jpeg_quality(93); 
       $thumbnail->save("../shop/images/product_images/original_images/".$file); 
       $thumbnail->size_auto(500); 
       $thumbnail->save("../shop/images/product_images/popup_images/".$file); 
       $thumbnail->size_auto(200); 
       $thumbnail->save("../shop/images/product_images/info_images/".$file); 
       $thumbnail->size_auto(112); 
       $thumbnail->save("../shop/images/product_images/thumbnail_images/".$file); 


      } else { 
       continue; 
      } 
     } 
    } 
    closedir($handle); 
} 
echo "Hallo Welt"; 
+1

請告訴我們(您的代碼示例中),其中'echo'不執行。 – Matt 2012-08-16 16:38:13

+0

此外,請將'false!==($ file = readdir($ handle))'更改爲'($ file = readdir($ handle))!== false'。你擁有它的方式在技術上是可行的,但它會反向讀取。 – Matt 2012-08-16 16:42:29

+0

我把echo命令放在if命令和這裏給出的代碼段之下。 – 2012-08-16 16:43:39

回答

0

看起來你從來沒有while環路內更新的$handle價值,因此創造一個無限循環。

+0

我的理解$ handle是opend文件夾的資源。更新是什麼意思?它應該在所有文件通過while循環時停止... – 2012-08-16 17:06:20

+0

'($ file = readdir($ handle))!== false'控制你的while循環。如果這不更新,你永遠不會退出循環。你可以直接寫'while(true)'。 – Matt 2012-08-16 17:07:45

+0

但readdir返回下一個文件名,當沒有更多的文件時,它返回false,所以它在這裏說... [鏈接](http://us2.php.net/manual/en/function.readdir.php) – 2012-08-16 17:13:05

0

嘗試僅使用回聲的運行代碼而不調整圖像大小。嘗試var_dump變量並檢查內容。確保您有錯誤報告。如果發生一些錯誤。

檢查,圖像擴展這種方式:

public static function isImage($fileName) 
{ 
    $type = exif_imagetype($fileName); 

    if (!(($type == IMAGETYPE_JPEG) || ($type == IMAGETYPE_GIF) || ($type == IMAGETYPE_PNG))) 
     return false; 

    return true; 
} 
+0

如果我註釋掉它貫穿的圖像大小調整部分! – 2012-08-16 17:22:45

+0

當圖像調整大小時出現問題。啓發SimpleImage類。 http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/ – sczdavos 2012-08-16 17:23:53

+0

我的調整大小功能對某些種類的JPEG(我用尼康拍攝的JPEG ... )多數民衆贊成的問題... – 2012-08-16 18:09:15

相關問題