在我们PHP项目中可能有这样一种需求,需要获取文章中的第一张图片,这个时候就可以利用PHP正则表达来获取.
第一种:如果文章中没有图片,那就随机显示四张图片中的一张
$temp=mt_rand(1,4); $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; $content = $article->Content; //文章内容 preg_match_all($pattern,$content,$matchContent); if(isset($matchContent[1][0])){ $temp=$matchContent[1][0]; }else{ $temp="images/random/$temp.jpg";//需要在相应位置放置4张jpg的文件,名称为1,2,3,4第二种:如果文章中没有图片,那就显示一张默认的图片
//当文章没有图片的时候,随机调用主题style/images/random/下的1.jpg、2.jpg、3.jpg、4.jpg图片 }
$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";
$content = $article->Content; //文章内容
preg_match_all($pattern,$content,$matchContent);
if(isset($matchContent[1][0])){
$temp=$matchContent[1][0];
}else{
$temp="./images/no-image.jpg";//在相应位置放置一张命名为no-image的jpg图片
}
实际项目中的实现代码实例:图片中使用到了thinkphp5.1中的分页后遍历方法each,中间部分就是引用的上面的代码实现获取文章中的第一张图片