($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;
}
?>
困住我的网络?!详解手机连接内网受限问题-软件玩家 - 软件改变生活!
wifi提示连接受限,网络连接可以正常使用
我找了以前前辈写的方法,使用adb改权限的方法可以解决问题,但不能让客户自己都这样操作,而改源码的方法,因为版本更新或者文件调用的相互覆盖,试了几个方法,并没有生效
我这是另辟蹊径,我想着去掉图标的感叹号和信息提示,让客户感觉不到差别
frameworks/base/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
} else if (networkCapabilities.hasCapability(NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
- statusLabel = mContext.getString(R.string.wifi_limited_connection);
+ statusLabel = "";//mContext.getString(R.string.wifi_limited_connection);
return;
} else if (!networkCapabilities.hasCapability(NET_CAPABILITY_VALIDATED)) {
final String mode = Settings.Global.getString(mContext.getContentResolver(),
frameworks/opt/net/wifi/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
if (networkCapabilities.hasCapability(
NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
- return context.getString(R.string.wifitrackerlib_wifi_limited_connection);
+ return "";//context.getString(R.string.wifi_limited_connection);
vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml
文件末尾添加
+ <bool name="def_hdmiControlAutoDeviceOff">false</bool>
+ <string name="def_captive_portal_https_url">
+ <string name="def_captive_portal_http_url">
system_mssi_t0/vendor/mediatek/proprietary/packages/apps/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
loadBooleanSetting(stmt, Settings.Global.WIFI_DISPLAY_ON,
R.bool.def_wifi_display_on);
+ loadStringSetting(stmt, Settings.Global.CAPTIVE_PORTAL_HTTPS_URL,
+ R.string.def_captive_portal_https_url);
+ loadStringSetting(stmt, Settings.Global.CAPTIVE_PORTAL_HTTP_URL,
+ R.string.def_captive_portal_http_url);
loadStringSetting(stmt, Settings.Global.LOCK_SOUND,
R.string.def_lock_sound);
绿色文件是添加的,红色是去掉的文件,黑色是上下文方便定位的
本文标签:
使用困住我的的方法
更多相关文章
STM32微处理器中的DMA实验指南——从理论到实践
DMA介绍什么是DMA?令人头秃的描述:DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装
STM32 DMA技巧揭秘:让你的代码提速飞升,实现内存间的快速通信
DMA介绍什么是DMA?令人头秃的描述:DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装
编程小技巧:使用C#锁定IE浏览器的主页设置
简介:本项目是一个C#开发的实用工具,旨在通过锁定或解锁IE浏览器主页设置来保护用户的浏览器配置不被恶意更改。该工具涉及注册表操作、进程和窗口交互、权限管理、用户界面设计、事件驱动编程、异常处理、配置管理、程序安装与卸载、版本控制与打
Adobe Flash Player的秘密武器:Hybrid Shutdown方法揭秘
你所不知道的Shutdown命令 当你按下win + R在输入框中输入“shutdown -s -t 6”(拼手速的时候来了)当你看到图一时,上面会写Windows将在6秒钟开始关闭(看到这图你还有五秒钟)
一步到位,教你快速搞定路由器中的静态、默认及动态路由
一、实验目的 1、学会使用网络模拟器软件Packet Tracer 2、了解路由器的基本功能,学会路由器的基本配置 3、掌握静态路由,默认路由,RIP动态路由的配置 二、实验环境 Windows
入门即精通:DevEco Studio 2.2 虚拟机安装指南及APP开发攻略
鸿蒙开发包括鸿蒙应用开发(手机app)和鸿蒙设备开发(硬件开发)两大部分,其中设备开发又包括TV,音响,眼镜,手表,PC,平板,汽车,耳机以及未来的各种智能家居,手机作为一个超级终端,与各种设备实现互联,未来无论是在工作,学习,运动
HookPort_deviceiocontrol与createprocess:Windows开发中的关键技巧详解
参考资料: 1、 2、 3、 4、 5、 6、 目录: 1、流程图文介绍 2、驱动入口点DriverEntry 3、驱动高低版本区别 4、驱动接口
QQ邮箱空间遇阻?360成了幕后黑手?
360和QQ都用的时间可以说不短了,记得在上大学的时候,朋友帮我申请了这个QQ号,于是也就是开始了使用QQ,毕业以后,自己开始了自己的创业生涯,同时也可以开始了使用360软件,感觉两个都是蛮不错的,QQ一直用的就是它的聊天工具,我感觉
C++进阶之路:深入解析C++11标准的奇妙世界
1.C++的发展史 C语言诞生后,很快普及使用,但是随着编程规模增大且越来越复杂,并且需要高度的抽象和建模时,C语言的诸多短板便表现了出来,为了解决软件危机,上世纪八十年代,计算机界提出了oop(objectori
掌握YimMenu,解锁GTA5的无限可能
YimMenu游戏增强工具:解锁GTA5无限可能的完全掌握指南 你是否曾在GTA5中遇到这些困扰:想体验稀有载具却无处获取?重复任务让游戏乐趣大打折扣?YimMenu作为一款专为GTA5设计的游戏增强工具,能帮你突破这些限制。
VMware虚拟机与物理机多网卡环境下,Win11用户快速搭建互通网络的指南
VMware虚拟化环境组播通信实战:从原理到精准配置的完整指南 最近在调试一个分布式数据同步系统时,遇到了一个颇为棘手的问题:在本地开发机上,组播测试一切正常,可一旦部署到多台物理机器组成的测试环境,数据包就像石沉大海,再也收
Win11环境下的VMware虚拟机和物理机,多网卡间的无缝交互秘籍
VMware虚拟化环境组播通信实战:从原理到精准配置的完整指南 最近在调试一个分布式数据同步系统时,遇到了一个颇为棘手的问题:在本地开发机上,组播测试一切正常,可一旦部署到多台物理机器组成的测试环境,数据包就像石沉大海,再也收
Win7新手教程:恢复被遗忘的隐藏文件,不再烦恼
有不少小伙伴为了自己文件的安全性,选择将自己的文件进行隐藏,但却不知道如何将文件恢复,那么遇到这种问题应该怎么办呢?下面就和小编一起来看看Win7系统隐藏文件恢复的方法吧。 Win7系统隐藏文件恢复的方法 1、首先打开
新手也能懂!Win7系统中隐藏文件的寻找秘籍!
有不少小伙伴为了自己文件的安全性,选择将自己的文件进行隐藏,但却不知道如何将文件恢复,那么遇到这种问题应该怎么办呢?下面就和小编一起来看看Win7系统隐藏文件恢复的方法吧。 Win7系统隐藏文件恢复的方法 1、首先打开
全面解读开机自启动:设置技巧与命令代码详解
目录在日常使用电脑的过程中,开机自启动项的设置可以帮助我们自动运行一些常用程序,提高工作效率。不同操作系统设置开机自启动项的方式有所不同,下面将为你详细介绍 Windows、macOS 和 Linux 系统的相关设置方法
VB.NET编程秘籍:轻松设置定时关机任务,让电脑自动休眠!
<script type="textjavascript" src=""> <script>VB.NET怎样设计定时关机???小弟今天想设计一个定时关机!!
麒麟系统装显卡驱动?一看就会的简单步骤!
1、查看系统基本信息 1.1麒麟系统信息 uname -aLinux localhost.localdomain 4.19.90-89.11.v2401.ky10.x86_64 #1 SMP Tue May 7 18:33
在Ansible 2.9.18版本中解决DNF与ansible-playbook package自动更新冲突
引言 在使用 Ansible 进行服务器管理时,我们经常遇到一些特定的挑战,特别是在使用 AWX 服务器管理一组服务器时。最近,我在 Ansible 2.9.18版本中遇到一个问题:当尝试在托管内部仓库
MJX秘籍:5倍加速技巧,改写强化学习训练规则!
突破性5倍加速:MJX如何彻底重构强化学习训练范式 MuJoCo(Multi-Joint dynamics with Contact)作为一款通用物理模拟器,已成为机器人学、强化学习等领域的核心工具。而其衍生项目MJX(MuJ
MuJoCo高手之路:从入门到精通的进阶指南
突破物理模拟极限:MuJoCo性能调优实战指南 物理模拟的速度与精度一直是机器人控制、强化学习等领域的核心挑战。当你需要训练1000个机械臂同时进行操作学习,或实时渲染复杂柔性物体碰撞时,MuJoCo的默认配置往往难以满足需求
发表评论