($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;
}
?>
Ubuntu新手必备:快速学会复制粘贴及常用快捷键技巧-软件玩家 - 软件改变生活!
Ubuntu的复制粘贴操作
1.最为简单,最为常用的应该是鼠标右键操作了,可以选中文件,字符等,右键鼠标,复制,到目的地右键鼠标,粘贴就结束了。
2.快捷键。一般通用的是Ctrl+C与Ctrl+V。不过通用也是有限制的,一般的程序下是没有问题,遇到终端就不行了。其实终端下默认的是 Ctrl+Shift+C,Ctrl+Shift+V,可以自己在编辑项下面自己设置为常用的。
3.文件操作可以使用鼠标拖拽。按住Ctrl,拖动文件就是。
4.文字复制与粘贴,最简单,也是最出乎我们意料的操作方式,很多人可能还不知道。那就是左键鼠标选中所需用的文字,到需要粘贴的地方按鼠标中键,现在一般就是滚轮了。这个在各个程序之间也是可以使用的,包括终端下使用。
5.命令复制文件,cp。帮助:
用法:cp [选项]... [-T] 源 目的
或:cp [选项]... 源... 目录
或:cp [选项]... -t 目录 源...
将<源>文件复制至<目的>,或将多个< 源>复制至<目录>。
长选项必须用的参数在使用短选项时也是必需的。
-a, --archive
等于-dR --preserve=all
--backup[=CONTROL
为每个已存在的目标文件创建备份
-b
类似--backup 但不接受参数
--copy-contents
在递归处理是复制特殊文件内容
-d
等于--no-dereference --preserve=links
-f, --force
如果目标文件无法打开则将其移除并重试(当 -n 选项
存在时则不需再选此项)
-i, --interactive
覆盖前询问(使前面的 -n 选项失效)
-H
跟随源文件中的命令行符号链接
-l, --link
链接文件而不复制
-L, --dereference
总是跟随符号链接
-n, --no-clobber
不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference
不跟随源文件中的符号链接
-p
等于--preserve=模式,所有权,时间戳
--preserve[=属性列表
保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
--sno-preserve=ATTR_LIST
不保留指定的文件属性
--parents
复制前先在<目录>创建来源文件路径中的所有目录
-R, -r, --recursive
复制目录及目录内的所有项目
--remove-destination
尝试打开目的地文件前先删除已存在的目的地
文件 (与 --force 选项作对比)
--sparse=WHEN
控制创建 sparse 文件的方式
--strip-trailing-slashes 删除参数中所有<源>文件/目录末端的斜杠
-s, --symbolic-link
只创建符号链接而不是复制文件
-S, --suffix=后缀
自行指定备份文件的<后缀>
-t, --target-directory=目录
将所有参数指定的<源>文件/目录复制至<目录>
-T, --no-target-directory
将目标当作普通文件
-u, --update
只在<源>文件比目的地文件新,或目的地文件
不存在时才进行复制
-v, --verbose
详细显示进行的步骤
-x, --one-file-system
不会跨越文件系统进行操作
--help
显示此帮助信息并退出
--version
输出版本信息并退出
感觉 r参数还是很常用的。
常用快捷键:
窗口管理
1. Win+E - 显示所有桌面,方便的左右选择。
2. Alt+Ctrl+Left/Right Arrow -切换桌面
3. Alt+Ctrl+Shift+Left/Right Arrow - 移动当前窗口到其他桌面
4. Alt + Shift+ Up Arrow - 以很酷的方式显示当前窗口
5. Alt+F9/F10 - 最小化/最大化当前窗口
6. Alt+F5 -不最大化当前窗口
7. Alt+F7 - 激活当前窗口的移动选项,你可以使用方向键移动当前窗口,甚至移动到其他桌面。
8. Alt+F8 - 用方向键调整当前窗口大小
9. Ctrl + Alt + D - 显示桌面/恢复当前窗口
10. Alt+ Tab - 切换窗口
Nautilus
11. Shift+Ctrl+N - 新建文件夹, 很有用
12. Alt + Enter - 查看选择文件/文件夹的属性,代替单击右键选择属性
13. Ctrl + 1/2 - 改变文件夹视图查看方式,图标视图/列表视图
14. Ctrl + W - 关闭当前Nautilus窗口
15. Ctrl + Shift + W - 关闭所有Nautilus窗口
16. Ctrl+T - 在Nautilus中新建一个标签
17. Alt + Up/Down Arrow - 移动到父文件夹/选择的文件夹
18. Alt + Left/Right Arrow - 后退/前进
19. Alt + Home -直接移动到主文件夹
20. F9 - 开关显示Nautilus侧边栏
21. Ctrl + H -开关显示隐藏文件夹
其他
22. Ctrl + Alt + L -锁屏
23. Alt + F1 - 打开应用程序菜单
24. Alt + F2 - 打开运行应用程序对话框
25. Win + 鼠标滚轮 - 放大/缩小屏幕
本文标签:
文件选项目录
更多相关文章
ASF文件的核心要素:解析Flash内容的构造
最近一个月经理让我把我公司.vm4格式的video文件,封装成MS的ASF文件。 ASF文件是一个容器。理论上来说,可以包容各种video文件。这些文件可以用MS自己的codec,也可用第三方的codec。 ASF主要
轻松掌握Web托管:基础理论与实际操作的深度剖析
深入解析 Web 托管:从基础到实践 1. Web 托管基础 在当今的网络环境中,UNIX 和 Linux 系统是提供 Web 内容和应用程序的主流平台。这是因为它们从设计之初就是抢占式多任务系统,能够高效、安全且可靠
Win11里的小秘密:让你的文件不再被藏匿
Win11操作系统也推出一段时间了,不少小伙都有下载体验,但是使用过程中还是会有一些问题。Windows11会为用户自主地隐藏一些私密的文件数据,目的是为了防止用户进行误删除操作,那么我们该如何恢复隐藏的文件?下面和小编一起来了解一下
一步到位:轻松解除Flash相关文件的隐藏状态
一般这种病毒会从u盘传播,被该木马病毒感染的优盘,会自动生成和文件夹同名的exe文件,再把文件夹添加系统属性进行隐藏,同时还自动隐藏文件名后缀显示,而且图标也是文件夹的样子,很有欺骗性,一旦在未感染木马的电脑上双击了和文件夹同名的ex
一气呵成的编码:掌握空间-Vim的神级快捷键
space-vim键绑定完全手册:助记快捷键提升10倍编码效率 space-vim是一个专为Vim和NeoVim设计的现代化vim发行版,通过智能的助记键绑定系统,让开发者能够快速掌握并大幅提升编码效率。本文将详细介绍spac
一键截图,智能识别文字 - _qqscreenshot.exe
QQ自带的截图功能真的很强大,而且非常方便,包含了多种实用的功能,可以在截图上进行标记,可以截图进行文字提取等。现在有人把这个功能从QQ上分离出来了,在没有网络不登录QQ的情况下也可以使用这个截图工具了。 一、软件简介
掌握Windows截图技巧,从此制胜
QQ截图提取版:Windows系统终极截图解决方案 QQScreenShot是一款功能完整的独立截图工具,源自电脑QQ的截图模块,现已完全脱离QQ客户端独立运行。这款Windows截图工具提供了免安装截图软件的便捷体验,同时集
一招搞定Windows截图:QQ独立版完全指南
QQ截图独立版:Windows平台终极截图解决方案完全指南 QQScreenShot是一款功能全面的独立截图工具,源自电脑QQ的截图模块,现已完全脱离QQ客户端独立运行。这款Windows截图工具提供了强大的OCR文字识别、图
360手机刷机大揭秘:一步到位,流畅运行不再等!
目录1. 下载工具和线刷包 360手机shen升级助手: 线刷包: 2. 禁用驱动程序强制签名2.1 Win+R打开运行窗口,输入:gpedit.msc 2.2 用户配置
从安装到反向分析:APP_e2esoft vcam的SWF探秘
主要分析CyberLink的Youcam 和e2esoft的VCam。 ========================== CyberLink YouCam =============================
误删了NTLDR?WindowsXP启动不起来?立即恢复教程!
WindowsXP 系统“ NTLDR is missing ”问题的修复。今天一个同事的笔记本开机,没有反应,屏幕显示“ NTLDR is missing
一键清零:解除IE浏览器与Flash技术的羁绊
简单的:在桌面上蓝色的IE浏览器图标上点右键---属性---删除历史记录---删除文件。复杂的:(上面的不行就用这个吧)随着上网时间的增加,在浏览器的地址栏里就会有很多的网址,这就需要考虑如何去清理它,这里小弟提
掌握这招,QQ聊天记录数据恢复不再难题
简介:本文围绕如何在重装QQ后查看历史留言记录,并探讨查看他人电脑上QQ聊天记录的方法展开,主要涉及QQ本地数据存储机制、第三方查看工具使用以及聊天记录恢复技巧。文中介绍了QQ聊天记录默认存储路径、“Tencent Files”目录作
QMCDecode全解:如何跨越限制,在不同平台上畅享QQ音乐
QQ音乐格式转换工具QMCDecode全解析:从加密限制到跨平台自由播放 QMCDecode是一款专为macOS用户设计的开源音频格式转换工具,专注于解决QQ音乐加密文件的播放限制问题。通过深度解析QMC加密算法,该工具能够将
剑灵游戏出错?试试这3步,轻松搞定126‘未找到dll’!
在《剑灵》中遇到游戏崩溃弹窗显示“错误126:未找到dll”时,可尝试这样解决。先检查游戏文件完整性,确保相关动态链接库文件未缺失,然后更新驱动程序,清理电脑垃圾,若还不行,可考虑重新安装游戏来解决这一问题。本篇将为大家带来《剑灵》游
当Flash游戏遇到d3dx9_43.dll问题,一文解决你的烦恼!
找不到d3dx9_43.dll文件导致无法继续执行代码的问题,通常是由于DirectX组件缺失或损坏引起的。这个错误通常出现在运行某些游戏或应用程序时,它会导致程序无法正常运行。下面我将介绍5种解决找不到d3dx9_43.dll的方法
新手上路:如何解决找不到d3dx9_43.dll错误?真三国无双7玩转攻略!
丢失d3dx9_43.dll文件可能会引发一系列运行问题,具体表现在哪些方面呢?首先,它是DirectX 9.0c的一个重要动态链接库文件,对于许多基于此版本DirectX开发的老旧或经典PC游戏至关重要。一旦缺失,可能导致这些游戏无
d3dx9_43.dll找不到?钢铁雄心4玩家的全面解决攻略
在计算机游戏领域,遇到“找不到d3dx9_43.dll”错误信息是一个相当普遍的现象。这一问题不仅影响玩家的游戏体验,还可能导致游戏无法启动或运行不稳定。本文旨在深入解析这一问题的原因,并提供有效的解决方法,帮助广大游戏玩家轻松解决
Untrunc大显神威,教你快速修复损坏的MP4文件
终极指南:如何用Untrunc高效恢复损坏的MP4视频文件 当您珍贵的视频文件因存储故障、意外断电或传输错误而无法播放时,那种焦虑和失落感难以言表。无论是家庭聚会的温馨记录、旅行中的精彩瞬间,还是重要的工作素材,这些数字资产的
初学者指南:MuJoCo XLA(MJX)与人形机器人四足机器人的强化学习
系列文章目录目录前言 本笔记本提供 MuJoCo XLA (MJX) 的入门教程,MJX 是 MuJoCo 基于 JAX 的实现,适用于 RL 训练工作负载。 需要使用具有 GPU 加速功能的
发表评论