php getimagesize功能是冻结服务器

时间:2017-05-10 13:01:06

标签: php laravel artisan getimagesize

我遇到了getimagesize功能的问题,它冻结了服务器。

@foreach($categories as $category)
        <span>{{$category->thumb}}</span>
         <div class="box-categoria">
            <a href="{{$category->generateCategoryUrl()}}">
                @if(isset($category->thumb)&&$category->thumb != ""&&getimagesize($category->thumb))
                    <img src="{{$category->thumb}}" width="150"/>
                @else
                    <img src="{{asset('assets/images/no-thumb.jpg')}}" width="150"/>
                @endif
                <div class="overlay"></div>

            </a>
        </div>
        @endforeach

这在其他计算机上正常工作,即使在生产服务器中也能正常工作。

这个项目使用Laravel框架,工匠服务器和图像的网址是这样的:

http://www.portaldamarcaelectrolux.com.br/owners/575889d6024f03012e4273b6/categories/f18058073cffbcba22945e57544b120a.jpg

由于

1 个答案:

答案 0 :(得分:2)

将此检查(getimagesize)放入刀片视图中非常奇怪。它是后端逻辑,并且在运行时检查这个性能非常糟糕。更好的方法是在刀片视图中简化如下所示的逻辑,而不使用if-else条件

<img src="{{$category->thumb}}" width="150" onerror="this.src='/assets/images/no-thumb.jpg';"/>

因此,如果拇指不存在,则会加载图像no-thumb