agid])) { foreach ($g_flag_thread[$flagid] as &$val) { flag_thread_filter($val); } flag_thread_set($flagid, $g_flag_thread[$flagid]); } } return $g_flag_thread[$flagid]; } // 设置缓存 $key = flagid / $val = flagid下tid数组 function flag_thread_set($key, $val) { global $g_flag_thread; FALSE === $g_flag_thread and $g_flag_thread = website_get('flag_thread'); empty($g_flag_thread) and $g_flag_thread = array(); $g_flag_thread[$key] = $val; return website_set('flag_thread', $g_flag_thread); } // 删除flag下tid缓存 function flag_thread_delete_cache($flagid) { global $g_flag_thread; FALSE === $g_flag_thread and $g_flag_thread = website_get('flag_thread'); empty($g_flag_thread) and $g_flag_thread = array(); if (isset($g_flag_thread[$flagid])) { unset($g_flag_thread[$flagid]); website_set('flag_thread', $g_flag_thread); } return TRUE; } // Delete by tid / 通过tid删除flag下的主题和对应flagid缓存 function flag_thread_delete_by_tid($tid) { global $g_flag_thread; FALSE === $g_flag_thread and $g_flag_thread = website_get('flag_thread'); if (empty($g_flag_thread)) { $g_flag_thread = array(); } else { $thread = well_thread_read_cache($tid); $arrlist = flag_thread_find($tid, 1, $thread['flags']); $flagarr = $ids = array(); foreach ($arrlist as $val) { $flagarr[] = $val['flagid']; $ids[] = $val['id']; if (isset($g_flag_thread[$val['flagid']])) unset($g_flag_thread[$val['flagid']]); } website_set('flag_thread', $g_flag_thread); // 主键更新 flag_update($flagarr, array('count-' => 1)); // 主键删除 flag_thread_delete($ids); } return TRUE; } // 主键删除 通过$flagid删除flag下的主题和对应flagid缓存 function flag_thread_delete_by_flagid($flagid) { global $g_flag_thread; FALSE === $g_flag_thread and $g_flag_thread = website_get('flag_thread'); $read = flag_read_cache($flagid); if (empty($read)) return TRUE; $arrlist = flag_thread_find_by_flagid($flagid, 1, $read['count']); if (empty($arrlist)) return TRUE; $flagarr = $ids = array(); $n = 0; foreach ($arrlist as $val) { ++$n; $flagarr[] = $val['flagid']; $ids[] = $val['id']; if (isset($g_flag_thread[$flagid])) unset($g_flag_thread[$flagid]); } website_set('flag_thread', $g_flag_thread); // 主键更新 flag_update($flagarr, array('count-' => $n)); // 主键删除 $r = flag_thread_delete($ids); return $r; } ?>软件

Others2_谈谈个人常用的软件

今天中午,无意中逛到知乎,然后看到了这篇文章 Windows 下有什么软件能够极大地提高工作效率? 又激发了我写这篇文章的动力,一直以来我觉得我是个不折

2024-10-17460

软件测试面试题整理

软件测试面试题整理 一般面试官都会问到你是怎样进入测试的,如何评判你是一个好的测试员,你可这样说, 主要工作:1确定测试范围,制

2024-10-17660

特别实用的一些软件强烈推荐!

1.最棒的视频播放器kmplayer(本博主极力推荐!) 这篇博客详细介绍一款专业级视频播放器---kmplayer,这款播放器相当NB&#xf

2024-10-17980

After Effects 2021软件安装包

Ae 2021的全称是After Effects 2021,它是由Adobe公司研发推出的一款功能强大全面的视频制作软件,这款软件不仅仅可以帮助用户制作出各种精彩且有创意的动画、视频等作品&

2024-10-171060

Java 软件安装流程详解

前言:对于很多同学来说,刚开始学Java很苦恼的一件事就是安装软件和配置。 包括jdk,Myeclipse10,eclipse,

2024-10-17670

便携软件制作入门教程及实例

一、为什么要做便携软件: 我个人属于爱折腾的,成天重装系统,而重装后装软件又是件麻烦事,加上我对系统有洁癖,就喜欢上了用便携软件

2024-10-17990

软件测试基础

用时:五天(自用)文章目录 前言一、软件测试二、计算机基础2.1 计算机软硬件2.2 进制编码2.3 浏览器相关知识2.4 DOS命令 三、HTML3.1 基础语法3.2

2024-10-17570

软件测试常见面试题

文章目录 1、你的测试职业发展是什么?2、你认为测试人员需要具备哪些素质?3、你为什么能够做测试这一行?4、测试的目的是什么?5、测试分为哪几个阶段&a

2024-10-17930

MacBookPro使用分享及软件推荐

MacBookPro使用分享及软件推荐 1.写在前面 ​ 背景:博主刚毕业一年,从事工作互联网金融相关开发工作,公司发了只能在内网使用的联想笔记本T系列,无法连接外网&a

2024-10-17990

怎样下载python的编译器,如何下载python编程软件

大家好,本文将围绕怎样下载安装python编程软件展开说明,怎样下载python的编译器是一个很多人都想弄明白的事情,想搞清楚如何下载python编程软件需要先了解以下几个事

2024-10-17810

各类软件大全

软件大全 1. 说明2. 系统维护 2.1. 装机2.2. 硬件检测2.3. 硬盘测试2.4. 数据救援2.5. 垃圾清理2.6. 注册表搜索2.7. 电脑管理 3. 装机后必备 3.1. 通用篇3.2. 程序员篇 4. 4.文档编辑工具

2024-10-17620

从Windows角度看Mac OS X上的软件开发

如果原来从事Windows软件开发,想跨足或转换至Mac OS X环境,需要知道那些东西?有什么知识技能可以快速运用在Mac OS X环境上的?这两个问

2024-10-17690