首页 / 话题 / 后端 / 文章详情

使用PHP正则表达获取文章内容中的第一张图片

一直在的 2022-11-16 | 阅读(972) | 评论(0

在我们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,中间部分就是引用的上面的代码实现获取文章中的第一张图片
相关阅读
评论(0)
请登录
请登录后发表评论