Показывать изображение и текстовый файл одновременно (scandir)

У меня проблема. Мне нужно показать изображение — находится в папке — если расширение — .png, .jpg, .jpeg или .gif. Если расширение не является одним из них, просто покажите содержимое файла (.tex).

Я сделал скрипт, который работает. Но он показывает только один из них (IMG или текстовый файл одновременно). Мне нужно показать их обоих сразу.

<?php
$allFiles = scandir('post/');
$files = array_diff($allFiles, array('.', '..'));

foreach($files as $file)
{
$ext = substr(strrchr($file, '.'), 1);
if($ext = "jpg" || $ext = "png" || $ext = "jpeg" || $ext = "gif" ) {
echo "<div class=post>
<img width= 200px src=post/".$file.">
</div>";
}

else {
echo    "<div class=post>
". file_get_contents("post/".$file) ."</div>";
}

}
?>

Большое спасибо за помощь.

-1

Решение

Проблема решена: изменить = на ==

<?php
$allFiles = scandir('post/');
$files = array_diff($allFiles, array('.', '..'));

foreach($files as $file)
{
$ext = substr(strrchr($file, '.'), 1);
if($ext == "jpg" || $ext == "png" || $ext == "jpeg" || $ext == "gif" ) {
echo "<div class=post>
<img width= 200px src=post/".$file.">
</div>";
}

else {
echo    "<div class=post>
". file_get_contents("post/".$file) ."</div>";
}

}
?>
0

Другие решения

Попробуй это :

        $allFiles = scandir('post/');
$extArray = array('jpg', 'png', 'jpeg', 'gif');

foreach($allFiles as $file)
{
$ext = end(explode('.', $file));
if(in_array($ext, $extArray)) {
echo "<div class='post'>
<img width='200px' src='post/'". $file ." />
</div>";
}else {
echo "<div class='post'>". file_get_contents('post/'.$file)
."</div>";
}

}
0

По вопросам рекламы [email protected]