2016-07-25 9 views
0

Как проверить, есть ли контент с использованием file_get_contents и распечатать содержимое, если оно есть.Проверка Php для file_get_contents в цикле

Я попытался следующие, но это не сработало: (я использую синтаксис Laravel лезвия)

@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

Вот почему я пытаюсь пропустить и получить контент, если есть контент.

+1

Я думаю, что вы ищете [file_exisits()] (http://php.net/manual/en/function.file-exists.php) –

+0

В этом вопросе отсутствует дополнительное объяснение, вы уверены, что есть даже что-нибудь в массиве $ images? Можете ли вы подробнее ...? – spongeworthy

+0

массив имеет 2 значения, frist один пуст, а второй нет (удерживайте путь изображения) – utdev

ответ

1

При использовании file_get_contens результата возврата является строкой, а затем, если этот файл пуст, вы получите пустую строку

Так используйте этот код

@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 файл существует и имеет пустой контент

Это разные.

+0

Я пытался ошибочно, но это не сработало – utdev

+0

@ JohnDoe2 В этом случае файл уже существует и имеет пустой контент, вы будете использовать 'file_get_contents ($ images [$ i] -> scenes) == false'. –

+0

Этот комментарий был для вас первым ответом, перед вашим редактированием – utdev