-1

我有一段代码有一些错误,我一直试图找到一整天......这(应该)做的是:浏览文件夹中的所有文件,检查它是否是图像类型,如果是,在某个文件夹中创建缩略图。它完成了工作,但是:之后它不会继续,我放了一个 echo 命令并且它从未执行过。我很感激任何帮助!多谢。

$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";
4

2 回答 2

0

看起来您从不更新循环$handle内的值while,因此创建了一个无限循环。

于 2012-08-16T17:01:37.060 回答
0

尝试仅使用 echo 运行代码而不调整图像大小。尝试 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;
}
于 2012-08-16T17:17:41.180 回答