Php 如何仅显示图像(.jpg)?

Php 如何仅显示图像(.jpg)?,php,codeigniter,Php,Codeigniter,数组([0]=>assets/image/man.jpg[1]=>assets/image/vision.jpg[2]=>assets/image/test.txt) 数据库中的数据如上所示。它包含图像和txt。如何仅显示图像。当您要将其写入页面时,为什么要检查它? 您可以: 1.使用“/”拆分资产/image/man.jpg 2.获取最后一个, 3.用“.”拆分最后一个。 4.获取扩展名,如果是“jpg”,则将其写入页面 $array= Array ( [0] => assets/ima

数组([0]=>assets/image/man.jpg[1]=>assets/image/vision.jpg[2]=>assets/image/test.txt)


数据库中的数据如上所示。它包含图像和txt。如何仅显示图像。

当您要将其写入页面时,为什么要检查它?
您可以:
1.使用“/”拆分资产/image/man.jpg
2.获取最后一个,
3.用“.”拆分最后一个。
4.获取扩展名,如果是“jpg”,则将其写入页面

$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_数组包含数组的匹配元素


有关更多详细信息,请查看此线程使用
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="" /> ';
    }
 }
foreach($array\u result作为$result){
//$array\u结果是数组数据
//条件是检查文件是否为图像
$allowed=array('gif'、'png'、'jpg');
$filename=$result;
$ext=pathinfo($filename,pathinfo_扩展名);
if(在数组中($ext,$allowed)){
回声';
}
}

这应该可以做到:

$images = array();
$images_exts = array('.jpg','.png');
foreach($db_array as $key => $value)
{ 
    foreach($images_exts as $ext)
    {
        if (strpos($value,$ext))
        {
            $images[] = $value;
        }
    }
}
这里有一个例子


还有另一种方式,不管你最喜欢什么:

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

下面是一个示例

在查询时,您可以直接对其进行筛选

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;
        }
});
$output数组仅包含具有.jpg字符串的条目

我在这里使用
strpos
来检查.jpg是否存在

您可以使用
substr($str,-4)='.jpg'
检查最后4个字符

如果您使用的是PHP5+(我希望您使用的是7.0+),请使用
SplFileInfo()

$spl  = new SplFileInfo($fileName); 
if ($spl->getExtension() == 'jpg') {
//image
}


只需循环你的阵法并引爆每一个刺。最后一个索引就是您所需要的。

例如,在
fakefile jpg.txt
上,这将失败。
fakefile jpg.txt
将是一个文本文件而不是图像是,并且您的if语句会将其误认为图像。您需要以正确的方式在循环中获取正确的文件扩展名。检查文本中是否存在单词
jpg
,这是一个错误。@Akintunde Rotimi我已对我的回答进行了更改。您可以更新查询,以便只返回图像文件。例如,这将在
fakefile jpg.txt
上失败。你应该用正确的方法检查分机。您所做的只是检查文本,
jpg
而不是extension@Akintunde-Rotimi怎么办?添加了另一种不会在
-jpg
甚至
.jpg
上失败的方法,如果它是文件名本身的一部分:D@Akintunde Rotimi
$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);
    <?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);
?>