网上一直流传着一个提取图片的正则,很可惜它是错误的:
// 错误的
$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";
姑且可以这么写:
// 虽然限定了图片要有后缀
$pattern = "/<img[^>]*src=\"([^\"]+\.(gif|jpg|png|jpeg|jpe|bmp|webp))\"[^>]*>/i";
在 1.7 版本开始,Z-BlogPHP 增加了提取图片并进行裁切的功能;
zb_system/function/lib/base/post.php::__get()
← 在该路径函数中可以看到文章类支持的属性获取;
其中$post->AllImages
可以获取文章内的图片,返回的是一个数组;
另有$post->ImageCount
返回图片数量;
// 定义一个默认的图片地址,甚至可以在一组中随机取一张
$DefIMG = "……";
// 判断文章内是否有图,返回第一张或默认
$FistIMG = $post->ImageCount > 0 ? $post->AllImages[0] : $DefIMG;
上边获取到的是原始图片;
zb_system/function/lib/base/post.php::Thumbs()
← 这个函数则用来获取缩略图;
该函数接受四个参数,依次为:(宽, 高, 数量, 是否裁切),返回值为数组;
// 获取三张缩略图,尺寸为 640 x 360
$Thumbs = $post->Thumbs(640, 360, 3, true);
Thumbs()
内有一个接口Filter_Plugin_Post_Thumbs
,可以用于实现无图时回落至默认图之类的效果;
· 相关推荐
【备忘】Z-BlogPHP 使用随机图片 API 设置缩略图_沉冰浮水的博客-CSDN 博客:
https://wdssmq.blog.csdn.net/article/details/124233817
「水坑」关于 Z-BlogPHP 1.7 缩略图的一些记录_沉冰浮水的博客-CSDN 博客: