У меня проблема. Мне нужно показать изображение — находится в папке — если расширение — .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>";
}
}
?>
Большое спасибо за помощь.
Проблема решена: изменить = на ==
<?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>";
}
}
?>
Попробуй это :
$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>";
}
}