Php 在循环中检查 file_get_contents

Php check for file_get_contents in loop

如何使用 file_get_contents 检查是否有内容,如果有则打印出来。

我尝试了以下但没有成功: (我使用 laravel blade 语法)

    @if(file_get_contents($images[$i]->scenes) == 0) //empty
        <img class="input-preview" src="{{ asset('img/placeholder654x363.png') }}">
    @else
        <img class="input-preview" src="{{ 'data:image/jpeg;base64,'.base64_encode(file_get_contents($images[$i]->scenes)) }}">

我收到错误是因为我有两个文件(字符串路径)如下:

0 -> no image 1 -> image

这就是为什么我尝试循环访问并在有内容时获取内容的原因。

当你使用file_get_contens结果return是一个字符串,那么如果这个文件为空你将得到空字符串

所以使用这个代码

@if(!file_exists($images[$i]->scenes) || file_get_contents($images[$i]->scenes) == false) //empty
    <img class="input-preview" src="{{ asset('img/placeholder654x363.png') }}">
@else
    <img class="input-preview" src="{{ 'data:image/jpeg;base64,'.base64_encode(file_get_contents($images[$i]->scenes)) }}">
  • !file_exists($images[$i]->scenes)表示文件不存在
  • file_get_contents($images[$i]->scenes) == false 文件存在且内容为空

这些是不同的。