读取文章中的图片数量,并缓存方便使用-kb88凯时官网登录

时间:2019-11-06
阅读:
免费资源网 - https://freexyz.cn/

zblogphp开发教程,统计文章中的图片数量,并数量和相册缓存在扩展字段中。

include.php中插入【*请修改后使用,谢谢】

/**
 * 挂载接口
 */
function activeplugin_xxx() {
    add_filter_plugin('filter_plugin_postarticle_core', 'xxx_plugin_postarticle_core');
}
/**
 * 统计文章中的图片数量
 * 
 * @param number $id 文章id
 * @param object $art 文章对象
 */
function xxx_countarticleimage($id = null, $art = null) {
    global $zbp;
    // 如果设置文章id 读取文章对象
    if (isset($id) && $id > 0) {
        $art = $zbp->getpostbyid((int) $id);
    }
    // $art文章对象异常时 默认返回0
    if (empty($art) || !$art->id) {
        return 0;
    }
    // 返回$art->metas中的缓存数量
    if (isset($art->metas->images_count)) {
        $return $art->metas->images_count;
    }
    
    $pattern = "//i";
    $content = $art->content;
    preg_match_all($pattern, $content, $matchcontent);
    $art->metas->images_array = implode(',', $matchcontent[1]);
    $art->metas->images_count = count($matchcontent[1]);
    $art->save();
    
    $return $art->metas->images_count ? $art->metas->images_count : 0;
}
/**
 * 提交文章的时候 统计文章中的图片数量
 */
function xxx_plugin_postarticle_core(&$article) {
    global $zbp;
    $pattern = "//i";
    $content = $article->content;
    preg_match_all($pattern, $content, $matchcontent);
    if(!isset($matchcontent[1]) || count($matchcontent[1]) == 0) {
        return;
    }
    $images = $matchcontent[1];
    $image_sum = count($images);
    $article->metas->images_array = implode(',', $images);
    $article->metas->images_count = $image_sum;
}

如何使用?

{xxx_countarticleimage(null, $article)}

{xxx_countarticleimage('文章id')}

$article需要更换为对象变量

这里的方法缓存了图片的列表,如果不需要去掉这两行代码即可;

$art->metas->images_array = implode(',', $matchcontent[1]);
$article->metas->images_array = implode(',', $images);
免费资源网 - https://freexyz.cn/
网站地图