PHP生成随机浮点数

/**
 * 随机浮点数
 * @param $min float  最小值
 * @param $max float  最大值
 * @param int $precision    精度
 * @return float|int
 */
public function mt_rand_float($min, $max, $precision = 2){
    if($min == $max)
        return $min;
    elseif($min>$max)
    {
        $tmp = $min;
        $min = $max;
        $max = $tmp;
    }
    $sub = $max- $min;
    $rate = mt_rand(1,999999)/1000000;
    return round(($min + ($sub * $rate)),$precision);
}

中文域名配置

Punycode是一个根据RFC 3492标准而制定的编码系统,主要用於把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码。Punycode可以防止IDN欺骗。
    国际化域名IDNs
早期的DNS(Domain Name System)是只支持英文域名解析。在IDNs(国际化域名Internationalized Domain Names)推出以后,为了保证兼容以前的DNS,所以,对IDNs进行punycode转码,转码后的punycode就由26个字母+10个数字,还有“-”组成。
    浏览器对punycode的支持  
目前,因为操作系统的核心都是英文组成,DNS服务器的解析也是由英文代码交换,所以DNS服务器上并不支持直接的中文域名解析,所有中文域名的解析都需要转成punycode码,然后由DNS解析punycode码。其实目前所说和各种浏览器完美支持中文域名,只是浏览器软里面主动加入了中文域名自动转码,不需要原来的再次安装中文域名转码控件来完成整个流程。
完全免费,双向转换 中文域名转码就是将中文字符串转成punycode标准编码的字符串。
本服务目前支持GBK,GB2312编码和punycode编码的相互转换。
域名串不允许有除“-”以外的标点符号,包括空格。 可以夹杂中文和英文。 可以输入全角英文字母,全角字母不区分大小写。

以NIGNX为例

真.ren 域名设置如下:

server_name xn--w1y.ren www.xn--w1y.ren;

Punycode转换工具:http://tools.jb51.net/punycode/

 

CentOS 6.9正式发布

CentOS(Community Enterprise Operating System)是一个基于Red Hat Linux提供的可自由使用源代码的企业级Linux发行版本。每个版本的CentOS都会获得十年的支持,是一个安全、低维护、稳定、高预测性、高重复性的Linux环境。

昨日,CentOS 6.9正式发布,带来了诸多改进,具体如下。

CentOS 6.9重大改进:

— 不再有LiveCD,用户可将LiveDVD复制到USB key,在需要时使用;

— GnuTLS支持TLS v1.2。CentOS中使用加密技术的所有软件包现在都支持 TLS v1.2;

— 对postfix、vsftpd、rsyslog7、 ipa-server、389-ds-base、krb5-server、sssd和libvirt进行了功能性的改进;

— 改进Net::SSLeay和IO::Socket:SSL Perl模块以更好地支持TLS;

— 不再支持不安全的加密协议和算法,这会影响到小于1024位的 MD5、SHA0、RC4 和 DH参数的使用;

— 新增cloud-init,用于配置新的云实例;

— pacemaker现在支持警报代理;

— clufter已更新至0.59.8版本;

— 包括Mozilla基金会提供的最新证书颁发机构在内的ca证书已更新;(点此查看更多更新日志

CentOS 6.9官方下载页面:点击这里

x86-64镜像下载地址点击这里

i386镜像下载地址点击这里 

微信卡券颜色规范(Color010-Color102)

微信卡券,会员卡支持的颜色名称及对应色值

weixin color

背景颜色名称 色值
Color010 #63b359
Color020 #2c9f67
Color030 #509fc9
Color040 #5885cf
Color050 #9062c0
Color060 #d09a45
Color070 #e4b138
Color080 #ee903c
Color081 #f08500
Color082 #a9d92d
Color090 #dd6549
Color100 #cc463d
Color101 #cf3e36
Color102 #5E6671

Bootstrap树形插件bootstrap-treeview

 

官方说明

A simple and elegant solution to displaying hierarchical tree structures (i.e. a Tree View) while leveraging the best that Twitter Bootstrap has to offer.

Bootstrap Tree View Default

依赖库

使用方法

<!-- Required Stylesheets -->
<link href="bootstrap.css" rel="stylesheet">

<!-- Required Javascript -->
<script src="jquery.js"></script>
<script src="bootstrap-treeview.js"></script>
<div id="treeview" class="treeview"></div>
var data = [
 {
 text: 'Parent 1',
 href: '#parent1',
 tags: ['4'],
 nodes: [
 {
 text: 'Child 1',
 href: '#child1',
 tags: ['2'],
 nodes: [
 {
 text: 'Grandchild 1',
 href: '#grandchild1',
 tags: ['0']
 },
 {
 text: 'Grandchild 2',
 href: '#grandchild2',
 tags: ['0']
 }
 ]
 },
 {
 text: 'Child 2',
 href: '#child2',
 tags: ['0']
 }
 ]
 },
 {
 text: 'Parent 2',
 href: '#parent2',
 tags: ['0']
 },
 {
 text: 'Parent 3',
 href: '#parent3',
 tags: ['0']
 },
 {
 text: 'Parent 4',
 href: '#parent4',
 tags: ['0']
 },
 {
 text: 'Parent 5',
 href: '#parent5' ,
 tags: ['0']
 }
 ];

$('#treeview').treeview({
    color: "#1d84df",
    enableLinks: false,
    data: data,//绑定data数据
    showTags: true,
    selectedBackColor: "#2d96f1",
    onhoverColor: "rgba(0, 0, 0, 0.05)",
    expandIcon: 'fa fa-plus',
    collapseIcon: 'fa fa-minus',
    nodeIcon: 'fa fa-folder',
});

data节点属性

参数名称 参数类型 参数描述
text String(必选项) 列表树节点上的文本,通常是节点右边的小图标。
icon String(可选项) 列表树节点上的图标,通常是节点左边的图标。
selectedIcon String(可选项) 当某个节点被选择后显示的图标,通常是节点左边的图标。
href String(可选项) 结合全局enableLinks选项为列表树节点指定URL。
selectable Boolean. Default: true 指定列表树的节点是否可选择。设置为false将使节点展开,并且不能被选择。
state Object(可选项) 一个节点的初始状态。
state.checked Boolean,默认值false 指示一个节点是否处于checked状态,用一个checkbox图标表示。
state.disabled Boolean,默认值false 指示一个节点是否处于disabled状态。(不是selectable,expandable或checkable)
state.expanded Boolean,默认值false 指示一个节点是否处于展开状态。
state.selected Boolean,默认值false 指示一个节点是否可以被选择。
color String. Optional 节点的前景色,覆盖全局的前景色选项。
backColor String. Optional 节点的背景色,覆盖全局的背景色选项。
tags Array of Strings. Optional 通过结合全局showTags选项来在列表树节点的右边添加额外的信息

treeview()参数

参数名称 参数类型 默认值 描述
data Array of Objects 列表树上显示的数据。
backColor String 所有合法的颜色值,Default: inherits from Bootstrap.css。 设置所有列表树节点的背景颜色。
borderColor String 所有合法的颜色值,Default: inherits from Bootstrap.css。 设置列表树容器的边框颜色,如果不想要边框可以设置showBorder属性为false。
checkedIcon String:class名称 Bootstrap Glyphicons定义的 “glyphicon glyphicon-check” 设置处于checked状态的复选框图标。
collapseIcon String:class名称 Bootstrap Glyphicons定义的 “glyphicon glyphicon-minus” 设置列表树可收缩节点的图标。
color String 所有合法的颜色值,Default: inherits from Bootstrap.css。 设置列表树所有节点的前景色。
emptyIcon String:class名称 Bootstrap Glyphicons定义的”glyphicon”。 设置列表树中没有子节点的节点的图标。
enableLinks Boolean false 是否使用当前节点的文本作为超链接。超链接的href值必须在每个节点的data结构中给出。
expandIcon String:class名称 Bootstrap Glyphicons定义的 “glyphicon glyphicon-plus” 设置列表树可展开节点的图标。
highlightSearchResults Boolean true 是否高亮搜索结果。
highlightSelected Boolean true 当选择节点时是否高亮显示。
onhoverColor String 所有合法的颜色值, Default: ‘#F5F5F5’。 设置列表树的节点在用户鼠标滑过时的背景颜色。
levels Integer Default: 2 设置继承树默认展开的级别。
multiSelect Boolean false 是否可以同时选择多个节点。
nodeIcon String:class名称 Bootstrap Glyphicons定义的 “glyphicon glyphicon-stop” 设置所有列表树节点上的默认图标。
selectedIcon String:class名称 Bootstrap Glyphicons定义的 “glyphicon glyphicon-stop” 设置所有被选择的节点上的默认图标。
searchResultBackColor String 所有合法的颜色值, Default: undefined, inherits。 设置搜索结果节点的背景颜色。
searchResultColor String 所有合法的颜色值, Default: ‘#D9534F’ 设置搜索结果节点的前景颜色。
selectedBackColor String 所有合法的颜色值, Default: ‘#428bca’ 设置被选择节点的背景颜色。
selectedColor String 所有合法的颜色值, Default: ‘#FFFFFF’。 设置列表树选择节点的背景颜色。
showBorder Boolean true 是否在节点上显示边框。
showCheckbox Boolean false 是否在节点上显示checkboxes。
showIcon Boolean true 是否显示节点图标。
showTags Boolean false 是否在每个节点右边显示tags标签。tag值必须在每个列表树的data结构中给出。
uncheckedIcon String:class名称 Bootstrap Glyphicons定义的 “glyphicon glyphicon-unchecked” 设置图标为未选择状态的checkbox图标。

treeview方法列表

  • checkAll(options):选择所有的节点。
    $('#tree').treeview('checkAll', { silent: true });

    触发nodeChecked事件,传入silent来阻止其它事件。

  • checkNode(node | nodeId, options):选择指定的节点,接收节点或节点ID。
    $('#tree').treeview('checkNode', [ nodeId, { silent: true } ]);

    触发nodeChecked事件,传入silent来阻止其它事件。

  • clearSearch():清空以前的搜索结果。例如清除它们的高亮状态。
    $('#tree').treeview('clearSearch');

    触发searchCleared事件。

  • collapseAll(options):折叠所有的节点,折叠整个树。
    $('#tree').treeview('collapseAll', { silent: true });

    触发nodeCollapsed事件,传入silent来阻止其它事件。

  • collapseNode(node | nodeId, options):折叠指定节点和它的子节点。如果不想折叠子节点,可以设置{ ignoreChildren: true }
    $('#tree').treeview('collapseNode', [ nodeId, { silent: true, ignoreChildren: false } ]);

    触发nodeCollapsed事件,传入silent来阻止其它事件。

  • disableAll(options):禁用所有的节点。
    $('#tree').treeview('disableAll', { silent: true });

    触发nodeDisabled事件,传入silent来阻止其它事件。

  • disableNode(node | nodeId, options):禁用指定的节点,接收节点或节点ID。
    $('#tree').treeview('disableNode', [ nodeId, { silent: true } ]);

    触发nodeDisabled事件,传入silent来阻止其它事件。

  • enableAll(options):启用所有的节点。
    $('#tree').treeview('enableAll', { silent: true });

    触发nodeEnabled事件,传入silent来阻止其它事件。

  • enableNode(node | nodeId, options):启用指定的节点,接收节点或节点ID。
    $('#tree').treeview('enableNode', [ nodeId, { silent: true } ]);

    触发nodeEnabled事件,传入silent来阻止其它事件。

  • expandAll(options):展开所有的树节点。也可以展开任何给定级别的树节点。
    $('#tree').treeview('expandAll', { levels: 2, silent: true });

    触发nodeExpanded事件,传入silent来阻止其它事件。

  • expandNode(node | nodeId, options):展开指定的树节点,接收节点或节点ID。也可以展开任何给定级别的树节点。
    $('#tree').treeview('expandNode', [ nodeId, { levels: 2, silent: true } ]);

    触发nodeExpanded事件,传入silent来阻止其它事件。

  • getCollapsed():返回折叠节点的数组。例如state.expanded = false
    $('#tree').treeview('getCollapsed', nodeId);
  • getDisabled():返回被禁用节点的数组。
    $('#tree').treeview('getDisabled', nodeId);
  • getEnabled():返回可用节点的数组。
    $('#tree').treeview('getEnabled', nodeId);
  • getExpanded():返回所有展开节点的数组。
    $('#tree').treeview('getExpanded', nodeId);
  • getNode(nodeId):返回给定节点ID的单一节点对象。
    $('#tree').treeview('getNode', nodeId);
  • getParent(node | nodeId):返回给定节点的父节点,如果没有则返回undefined。
    $('#tree').treeview('getParent', node);
  • getSelected():返回所有被选择节点的数组,例如:state.selected = true
    $('#tree').treeview('getSelected', nodeId);
  • getSiblings(node | nodeId):返回给定节点的兄弟节点的数组,如果没有则返回undefined。
    $('#tree').treeview('getSiblings', node);
  • getUnselected():返回没有被选择节点的数组。例如:state.selected = false
    $('#tree').treeview('getUnselected', nodeId);
  • remove():移除列表树容器。移除附加的事件、附加对象和额外的html元素。
    $('#tree').treeview('remove');
  • revealNode(node | nodeId, options):显示一个树节点,展开从这个节点开始到根节点的所有节点。
    $('#tree').treeview('revealNode', [ nodeId, { silent: true } ]);

    触发nodeExpanded事件,传入silent来阻止其它事件。

  • search(pattern, options):搜索匹配是非常的指定树节点,并高亮它们。返回配平节点的数组。
    $('#tree').treeview('search', [ 'Parent', {
      ignoreCase: true,     // case insensitive
      exactMatch: false,    // like or equals
      revealResults: true// reveal matching nodes
    }]);

    触发searchComplete事件。

  • selectNode(node | nodeId, options):选择一个给定的树节点,接收节点或节点ID。
    $('#tree').treeview('selectNode', [ nodeId, { silent: true } ]);

    触发nodeSelected事件,传入silent来阻止其它事件。

  • toggleNodeChecked(node | nodeId, options):切换节点的Check状态。
    $('#tree').treeview('toggleNodeChecked', [ nodeId, { silent: true } ]);

    触发nodeChecked事件或nodeUnchecked事件,传入silent来阻止其它事件。

  • toggleNodeDisabled(node | nodeId, options):切换一个节点的可用和不可用状态。
    $('#tree').treeview('toggleNodeDisabled', [ nodeId, { silent: true } ]);

    触发nodeDisabled事件或nodeEnabled事件,传入silent来阻止其它事件。

  • toggleNodeExpanded(node | nodeId, options):切换一个节点的展开和折叠状态。
    $('#tree').treeview('toggleNodeExpanded', [ nodeId, { silent: true } ]);

    触发nodeExpanded事件或nodeCollapsed事件,传入silent来阻止其它事件。

  • toggleNodeSelected(node | nodeId, options):切换一个节点的选择状态。
    $('#tree').treeview('toggleNodeSelected', [ nodeId, { silent: true } ]);

    触发nodeSelected事件或nodeUnselected事件,传入silent来阻止其它事件。

  • uncheckAll(options):Uncheck所有的节点。
    $('#tree').treeview('uncheckAll', { silent: true });

    触发nodeUnchecked事件,传入silent来阻止其它事件。

  • uncheckNode(node | nodeId, options):Uncheck一个给定的节点,接收节点或节点ID。
    $('#tree').treeview('uncheckNode', [ nodeId, { silent: true } ]);

    触发nodeUnchecked事件,传入silent来阻止其它事件。

  • unselectNode(node | nodeId, options):不选择指定的节点,接收节点或节点ID。
    $('#tree').treeview('unselectNode', [ nodeId, { silent: true } ]);

    触发nodeUnselected事件,传入silent来阻止其它事件。

    //选中节点
    $('#treeview').on('nodeSelected', function(event, data) {
        //TODO
    });
    //收起全部
    $('#treeview').treeview('collapsedAll', { silent: true });
    //展开全部
    $('#treeview').treeview('expandAll', { silent: true });

可用事件列表

  • nodeChecked (event, node):一个节点被checked。
  • nodeCollapsed (event, node):一个节点被折叠。
  • nodeDisabled (event, node):一个节点被禁用。
  • nodeEnabled (event, node):一个节点被启用。
  • nodeExpanded (event, node):一个节点被展开。
  • nodeSelected (event, node):一个节点被选择。
  • nodeUnchecked (event, node):一个节点被unchecked。
  • nodeUnselected (event, node):取消选择一个节点。
  • searchComplete (event, results):搜索完成之后触发。
  • searchCleared (event, results):搜索结果被清除之后触发。

参考

  • https://github.com/jonmiles/bootstrap-treeview
  • http://www.htmleaf.com/jQuery/Menu-Navigation/201502141379.html

相关插件

  • http://zgs225.github.io/easy-tree/
  • https://github.com/zgs225/easy-tree/