Как отображать только изображения (.jpg)? - PullRequest
0 голосов
/ 31 декабря 2018
Array ( 
   [0] => assets/image/man.jpg 
   [1] => assets/image/violin.jpg 
   [2] => assets/image/test.txt 
)

Данные из базы данных аналогичны приведенным выше.Он содержит изображения и текст .Как я могу отображать только изображения .

Ответы [ 9 ]

0 голосов
/ 31 декабря 2018

<?php
  $error = array();
  $file_extArr = explode(".", $file_name);
  $file_extEnd = end($file_extArr);
  $file_ext = strtolower($file_extEnd);

  $validateImage = array("png", "jpg", "jpeg", "gif");

  if (!in_array($file_ext, $validateImage)) {
    $error[] = "wrong format image";
  }

  if (!empty($error)) {
   return;
  }
?>
0 голосов
/ 03 января 2019
    <?php 
    $data = Array ( 
       'assets/image/man.jpg ',
       'assets/image/violin.jpg ',
       'assets/image/test.txt ',
    );

    $arrDara = array();
    foreach ($data as $value) {
        $fileName = explode('/', $value);
        $arrDara[] = end($fileName);
    }

    print_r($arrDara);
?>

Просто зациклите свой массив и взорвите каждый укус.последний индекс - это то, что вам нужно.

0 голосов
/ 31 декабря 2018

Если вы используете PHP 5+ (который, я надеюсь, вы используете 7.0+), используйте SplFileInfo() class

$spl  = new SplFileInfo($fileName); 
if ($spl->getExtension() == 'jpg') {
//image
}
0 голосов
/ 31 декабря 2018
$ar = ['assets/image/man.jpg','assets/image/violin.jpg','assets/image/test.txt'];
 $allowed = ['jpg']; //your image extensions
 $img_ar = [];
 foreach($ar as $img){
     $ext = pathinfo($img,PATHINFO_EXTENSION);
     if(in_array($ext,$allowed)){
         $img_ar[] = $img;
     }

 }
 print_r($img_ar);
0 голосов
/ 31 декабря 2018

Для этого вы можете напрямую отфильтровать его, когда запрашиваете как

field like '%.jpg'

Если вы не хотите делать это и манипулировать массивом, вы можете использовать array_filter, например,

$array= Array ('assets/image/man.jpg', 'assets/image/violin.jpg', 'assets/image/test.txt');

$output = array_filter($array, function($arr) {
        if (strpos($arr, '.jpg') == true){
                return $arr;
        }
});
*Выходной массив 1006 * $ содержит только те записи, которые имеют строку .jpg.

Здесь я использую strpos для проверки того, существует ли .jpg или нет.

Вы можете использовать substr($str, -4) == '.jpg', чтобы проверить последние 4 символа.

0 голосов
/ 31 декабря 2018

Это должно сработать:

$images = array();
$images_exts = array('.jpg','.png');
foreach($db_array as $key => $value)
{ 
    foreach($images_exts as $ext)
    {
        if (strpos($value,$ext))
        {
            $images[] = $value;
        }
    }
}

Вот пример https://3v4l.org/8W3Be


А вот другой способ, что вам больше нравится:

$images = array();
$images_exts = array('jpg','png');
foreach($input as $value)
{
    if(in_array(@end(explode('.', $value)), $images_exts))
    {
        $images[] = $value;
    }
}

Вот пример https://3v4l.org/b0njd

0 голосов
/ 31 декабря 2018

Используйте foreach цикл и получите расширение файла и отобразите.

foreach($array_result as $result){

    //$array_result is array data
    //condition is checking the file that if it is an image or not
    $allowed =  array('gif','png' ,'jpg');
    $filename = $result;
    $ext = pathinfo($filename, PATHINFO_EXTENSION);
    if(in_array($ext, $allowed) ) {
        echo '<img src="'.$result.'" alt="" /> ';
    }
 }
0 голосов
/ 31 декабря 2018
$array= Array ( [0] => assets/image/man.jpg [1] => assets/image/violin.jpg [2] => assets/image/test.txt )
$m_array = preg_grep('/^.jpg\s.*/', $array);

$ m_array содержит совпавшие элементы массива.

Более подробно смотрите в этой теме найдите в массиве php частичное совпадение строк

0 голосов
/ 31 декабря 2018

Почему вы проверяете это, когда хотите написать его на странице?
Вы можете:
1. разделить ресурсы / image / man.jpg с помощью '/'
2.получить последний,
3. разделить последний с помощью '.'
4. получить расширение и, если это было 'jpg', записать его на страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...