($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('H:i');
$s = "";
return $s;
}
// form_date('start', '2018-07-05') 为空则当前日期
function form_date($name, $value = 0, $width = FALSE)
{
$style = '';
if (FALSE !== $width) {
is_numeric($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('Y-m-d');
$s = "";
return $s;
}
/**用法
*
* echo form_radio_yes_no('radio1', 0);
* echo form_checkbox('aaa', array('无', '有'), 0);
*
* echo form_radio_yes_no('aaa', 0);
* echo form_radio('aaa', array('无', '有'), 0);
* echo form_radio('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'b');
*
* echo form_select('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'a');
*/
?>组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?>return $r;
}
/**
* @param int $page 页数
* @param int $pagesize 每页显示数量
* @return mixed
*/
function link_find($page = 1, $pagesize = 100)
{
$arr = link__find($cond = array(), array('rank' => -1), $page, $pagesize);
return $arr;
}
/**
* @param $id
* @return bool 返回FALSE失败 TRUE成功
*/
function link_delete($id)
{
if (empty($id)) return FALSE;
$r = link__delete(array('id' => $id));
link_delete_cache();
return $r;
}
//--------------------------kv + cache--------------------------
/**
* @return mixed 返回全部友情链接
*/
function link_get($page = 1, $pagesize = 100)
{
$g_link = website_get('friends_link');
if (empty($g_link)) {
$g_link = link_find($page, $pagesize);
$g_link AND website_set('friends_link', $g_link);
}
return $g_link;
}
// delete kv and cache
function link_delete_cache()
{
website_set('friends_link', '');
return TRUE;
}
?> $v = implode(",", $v);
$temp[] = $v;
}
// 去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
// 再将拆开的数组重新组装
$output = array();
foreach ($temp as $k => $v) {
if ($stkeep) $k = $starr[$k];
if ($ndformat) {
$temparr = explode(",", $v);
foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval;
} else $output[$k] = explode(",", $v);
}
return $output;
}
// 合并二维数组 如重复 值以第一个数组值为准
function array2_merge($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
/*
* 对二维数组排序 两个数组必须有一个相同的键值
* $array1 需要排序数组
* $array2 按照该数组key排序
* */
function array2_sort_key($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array2 as $k => $v) {
if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) {
$arr[$v[$key]] = $array1[$v[$key]];
} else {
$arr[] = $v;
}
}
return $arr;
}
?>
如何使用MemTest全面检测与诊断内存故障-软件玩家 - 软件改变生活!
在计算机系统维护中,内存(RAM)是核心部件之一。由于内存芯片的物理特性,其稳定性直接影响到整个系统的运行状态。为了确保内存工作正常,我们需要使用专业的工具进行测试和诊断。而MemTest就是一款非常实用的内存检测软件。本文将详细介绍如何使用MemTest进行全面的内存检测,并根据测试结果判断和处理可能出现的问题。
一、MemTest简介
MemTest是一款专门用于检测计算机内存条稳定性的工具软件。它能够通过多种模式对内存进行压力测试,帮助发现潜在的硬件问题。与其他同类软件相比,MemTest具有以下特点:
- 免费开源:MemTest是完全免费的软件,并且源代码公开。
- 多平台支持:适用于Windows、Linux和FreeBSD等多种操作系统。
- 全面测试模式:包括读取、写入、复制、延迟等多种内存操作模式。
- 高度可配置性:用户可以根据需要自定义测试参数。
二、MemTest的下载与安装
要使用MemTest,首先需要从官方网站或其他可信来源下载最新版本。对于Windows用户来说,安装过程相对简单:
- 访问MemTest官方下载页面:https://www.memtest.org/。
- 选择适合您操作系统的版本进行下载。
- 运行下载的.exe文件,按照提示完成安装程序。
对于Linux用户,则可以直接从软件仓库中获取:
sudo apt-get install memtest86
三、MemTest的基本使用方法
安装完成后,打开MemTest并进行基本设置。默认情况下,MemTest会自动检测内存模块的数量和容量。如果需要自定义测试参数,可以进入“Options”菜单调整以下内容:
- 测试模式:选择读取、写入、复制等不同操作模式。
- 循环次数:设置测试的总循环数或时间限制。
- 内存区块大小:定义每个测试块的大小,通常建议使用64MB或128MB。
完成配置后,点击“Start”按钮开始测试。MemTest会立即启动内存压力测试,并在完成后显示详细的测试结果。
四、解读MemTest的测试结果
测试结束后,MemTest会生成一个详细的报告,帮助您分析内存的工作状态:
- Passed (OK):表示所有测试项目均通过,内存工作正常。
- Failures detected:发现内存存在故障。需要进一步检查和处理。
- Hardware error:检测到硬件级别的错误,可能涉及主板或电源问题。
如果测试结果显示有错误,请参考MemTest的帮助文档或社区资源进行故障排除。常见的问题包括内存模块接触不良、电压不稳定或芯片老化等。
五、进阶技巧与注意事项
为了确保测试的准确性和全面性,建议采取以下措施:
- 多次测试:在同一环境下运行多轮测试,排除偶然因素。
- 单条测试:如果有多余的内存插槽,可以尝试单独测试每一条内存模块。
- 更新驱动:确保主板芯片组和内存控制器的驱动程序已更新到最新版本。
- 检查电源:稳定的电压供应是保证内存正常工作的前提条件。
六、MemTest与其他内存测试工具的对比
市场上还有其他一些内存测试软件,如:
- MemTest86:专注于服务器和工作站环境的内存检测。
- Prime95:虽然主要用于CPU烧机,但也包含基本的内存测试功能。
- SiSoftware Sandra:提供全面的系统硬件诊断工具,包括内存测试。
每款软件都有其独特的优势和适用场景。选择合适的工具需要根据具体的测试需求和个人偏好来决定。
七、总结与建议
通过本文的介绍,您应该已经掌握了使用MemTest进行内存检测的基本方法。为了进一步提升系统的稳定性,建议定期对内存进行健康检查,并结合其他硬件诊断工具(如HD Tune、PCMark等)进行全面系统维护。如果发现内存存在严重问题,请及时更换以避免潜在的数据丢失风险。
本文标签:
内存测试
发表评论