[TOC]
>[info][一个详细的教程](https://www.cnblogs.com/landeanfen/p/4976838.html)
[bootstrap table使用总结](https://www.cnblogs.com/wdcwy/p/6590855.html)
[BootstrapTable使用实例](https://www.cnblogs.com/samve/p/9757847.html)
[中文文档](https://www.bootstrap-table.com.cn/doc/api/table-options/)
[GridManager - 极简的代码实现多态的表格 (lovejavascript.com)](https://gridmanager.lovejavascript.com/#gm-install-flag)
>[danger] row就是行,columns就是列
> js获取table的tr、td需要在表格体加载完成之后才行`$('#bootstrap-table').on('post-body.bs.table', function (data){})`
重要表属性
~~~
visible:true,//设置为false以隐藏列项。
data:
dataType:'json'
dataField:'rows'
totalField:'total'
classes:'table table-bordered table-hover',//表的类名。其他类名参考:`'table'` `'table-bordered'(列内外(竖)边框)` `'table-hover'(指向单元格变色)` `'table-striped'(行灰白相间)` `'table-dark'(灰黑背景)` `'table-sm'(紧凑型表格)` `'table-borderless'(去掉内边框)`默认情况下,表格是有界的。
关闭toolBar
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false
~~~
## 重要的东西:
首先**获取options**:getOptions
组装好options后刷新选项: refreshOptions
然后**获取data数据** : getData
组装好data后,**<span style="color:blue">将数据加载到表中</span>**,旧行将被删除:`$table.bootstrapTable('load', data)`.
responseHandler方法也可以返回用于渲染的数据
**向表格后面追加数据**(可追加一条或多条):append
```
$table.bootstrapTable('append', [{'id':1,'name':'dash'},{},...])
$table.bootstrapTable('scrollTo', 'bottom')//将scroll滚动条滚动到最下面
```
刚才向后追加了,这里就是**向前追加数据**(可追加一条或多条):$table.bootstrapTable('prepend', data)
**指定的位置插入新的一行数据**:$table.bootstrapTable('insertRow', {index: 1, row: row})
```
$table.bootstrapTable('insertRow', {
index: 1,
row: {
id: randomId,
name: 'Item ' ,
price: '200'
}
})
```
**刷新远程数据**
```
$("#refresh_button").click(function (){
var opt = {
url: "http://local/api/data/?format=json",//可选,如果你不变更请求地址可省略
silent: true,//静默刷新数据
pageNumber:"1",当前页码,可选
pageSize:"".//每页显示多少数据,可选
query:{//查询参数
type:1,
level:2
}
};
$("#item_table").bootstrapTable('refresh', opt);
});
```
**销毁表**:$table.bootstrapTable('destroy')
切换分页选项(开启、关闭分页、开启、关掉分页):`$table.bootstrapTable('togglePagination')`将分页表格切换为滚动条
**更新一个单元格**:updateCell
```
//要禁用表重新初始化,您可以设置`{reinit: false}`
$table.bootstrapTable('updateCell', {index: 1, field: 'name', value: 'Updated Name'})
```
**更新id指定的一个单元格**:updateCellByUniqueId
```
$table.bootstrapTable('updateCellByUniqueId', {id: 3, field: 'name', value: 'Updated Name'})
```
**更新指定的行**:updateRow
```
$table.bootstrapTable('updateRow', {index: 1, row: row})
```
**更新指定的行**: updateByUniqueId
```
$table.bootstrapTable('updateByUniqueId', {id: 3, row: {'name':'dash',"price":200,...}})
```
从表中删除数据,该行包含`id`传递的参数:removeByUniqueId
```
$table.bootstrapTable('removeByUniqueId', 3)
```
**从表中获取一行数据**:getRowByUniqueId
# [BootStrap Table:事件、方法、多语言](https://blog.csdn.net/pengjunlee/article/details/80659747)
## **事件event**
**事件函数的用法:**
~~~
方法1:通过option对象
$('#table').bootstrapTable({
onEventName: function (arg1, arg2, ...) {// ...}
})
//通过option对象的例子:
var table=$('#user');
table.bootstrapTable({
onAll: function (arg1, arg2, ...) {},
onClickRow: function (arg1, arg2, ...) {},
}
方法2:jquery事件处理程序
$('#table').on('event-name.bs.table', function (e, arg1, arg2, ...) {// ...})
//jquery事件处理程序的例子, 第一个参数event-name部分就是onAll事件去掉on转小写驼峰加_
$('#table').on('click-row.bs.table', function (e, arg1, arg2, ...) {})
$('#bootstrap-table').on('click-row.bs.table', function (row, $element, field) {
//onClickRow
//alert(单击行事件);
})
$('#bootstrap-table').on('dbl-click-row.bs.table', function (row, $element, field) {
//onClickRow
//alert(双击行事件);
})
$('#bootstrap-table').on('click-cell.bs.table', function (field, value, row, $element) {
//onClickCell
//alert(单击单元格事件);
})
$('#bootstrap-table').on('dbl-click-cell.bs.table', function (field, value, row, $element) {
//onDblClickCell
//alert(双击单元格事件);
})
~~~
**事件api**
* [onAll](https://bootstrap-table.com/docs/api/events/#onall)(name,args) **任何事件触发都会同时触发该事件**(事件名称|事件数据) all.bs.table
* [onClickRow](https://bootstrap-table.com/docs/api/events/#onclickrow)(row, $element, field) **当点击某一行时触发**(出发改事件这一行的数据|tr元素|与单击的单元格对应的字段名称) click-row.bs.table
* [onDblClickRow](https://bootstrap-table.com/docs/api/events/#ondblclickrow)( `row, $element, field`) **当双击击某一行时触发**(参数同上) dbl-click-row.bs.table
* [onClickCell](https://bootstrap-table.com/docs/api/events/#onclickcell)(field, value, row, $element) **当点击某一个单元格时触发**(单击的单元格对应的字段名|该单元格的数据值|对应于单击行的记录|td元素) click-cell.bs.table
* [onDblClickCell](https://bootstrap-table.com/docs/api/events/#ondblclickcell)(field, value, row, $element) 当双击某一个单元格时触发(参数同上) dbl-click-cell.bs.table
* [onSort](https://bootstrap-table.com/docs/api/events/#onsort)(name, order) 当用户点击表头对某一字段列进行排序时触发(该列字段名称|排序列顺序) sort.bs.table
* [onCheck](https://bootstrap-table.com/docs/api/events/#oncheck)(row, $element) 当用户选中一行时触发(对应于单击行的记录|选中的DOM元素) check.bs.table
* [onUncheck](https://bootstrap-table.com/docs/api/events/#onuncheck)(row, $element) 当用户取消选中一行时触发 ( 参数同上) uncheck.bs.table
* [onCheckAll](https://bootstrap-table.com/docs/api/events/#oncheckall)(rows) 当用户点击全选框时触发 (与选中的行对应的数据数组) check-all.bs.table
* [onUncheckAll](https://bootstrap-table.com/docs/api/events/#onuncheckall)(rows) 当用户点击全选框取消选择时触发(与取消的行对应的表数据数组) uncheck-all.bs.table
* [onCheckSome](https://bootstrap-table.com/docs/api/events/#onchecksome)(rows) 当用户选中某些行时触发 check-some.bs.table
* [onUncheckSome](https://bootstrap-table.com/docs/api/events/#onunchecksome)(rows) 当用户取消选中某些行时触发 uncheck-some.bs.table
* [onLoadSuccess](https://bootstrap-table.com/docs/api/events/#onloadsuccess)(data) 当远程数据被加载完成后触发当服务器发送的格式不和规范在这里修改在返回 load-success.bs.table
* [onLoadError](https://bootstrap-table.com/docs/api/events/#onloaderror)(status, jqXHR) 当远程数据被加载出错后触发(jqXHR的状态代码|XMLHTTPRequest对象) load-error.bs.table
* [onColumnSwitch](https://bootstrap-table.com/docs/api/events/#oncolumnswitch)(field, checked) 当切换列的显示状态(可见或不可见)时触发(该列字段名|该列的选中状态) column-switch.bs.table
* [onPageChange](https://bootstrap-table.com/docs/api/events/#onpagechange) (number, size) 当切换每页条数时触发(页码,每页多少条) page-change.bs.table
* [onSearch](https://bootstrap-table.com/docs/api/events/#onsearch)( `text`) 当对表格内容进行搜索时触发 search.bs.table
* [onToggle](https://bootstrap-table.com/docs/api/events/#ontoggle)(cardView表的cardView状态) 当切换表格的显示视图时触发 toggle.bs.table
* [onPreBody](https://bootstrap-table.com/docs/api/events/#onprebody)(data渲染数据) 在对表格体进行渲染前触发 pre-body.bs.table
* [onPostBody](https://bootstrap-table.com/docs/api/events/#onpostbody)(data) 在表格体渲染完成,并在 DOM 中可见后触发 post-body.bs.table
* [onPostHeader](https://bootstrap-table.com/docs/api/events/#onpostheader)(undefined) 在表格列头渲染完成,并在 DOM 中可见后触发 post-header.bs.table
* [onExpandRow](https://bootstrap-table.com/docs/api/events/#onexpandrow)(index, row, $detail) 当点击详情按钮展开详情视图时触发 expand-row.bs.table
* [onCollapseRow](https://bootstrap-table.com/docs/api/events/#oncollapserow)(index, row) 当点击关闭详情按钮收起详情视图时触发 collapse-row.bs.table
* [onRefreshOptions](https://bootstrap-table.com/docs/api/events/#onrefreshoptions)(options) 当刷新表格选项时,在销毁当前表格并重新初始化新表格之前触发 refresh-options.bs.table
* [onResetView](https://bootstrap-table.com/docs/api/events/#onresetview)(undefind) 当重置表格视图时触发 reset-view.bs.table
* [onRefresh](https://bootstrap-table.com/docs/api/events/#onrefresh)(params) 当点击刷新按钮对表格进行刷新时触发(请求到服务器的附加参数?) refresh.bs.table
* [onScrollBody](https://bootstrap-table.com/docs/api/events/#onscrollbody)( `undefined`) 当对表格体进行滚动时触发 scroll-body.bs.table
* onColumnSearch() ???对列内容进行搜索时触发
* onPostFooter($tableFooter) 在DOM中呈现并可用页脚后触发 post-footer.bs.table
## **方法**
**用法**
~~~
$('#table').bootstrapTable('method', parameter);
如;
$('#table').bootstrapTable('getOptions');
$('#table').bootstrapTable('getRowByUniqueId',id);
~~~
**方法API**
~~~
bootstrapTable('getOptions'); 获取表格的参数
bootstrapTable('getSelections'); 获取当前被选中的行
bootstrapTable('getAllSelections'); 获取当前被选中的行数据,包含搜索和过滤前的(1.18已没有此方法)
bootstrapTable('showAllColumns'); 展示所有列
bootstrapTable('hideAllColumns'); 隐藏所有列
bootstrapTable('removeAll'); 移除表格中的所有数据
bootstrapTable('showLoading'); 显示数据加载状态提示
bootstrapTable('hideLoading'); 隐藏数据加载状态提示
bootstrapTable('checkAll'); 选中当前页的所有行
bootstrapTable('uncheckAll'); 取消选中当前页的所有行
bootstrapTable('checkInvert'); 对当前页内行数据进行反选,会触发onCheckSome 和 onUncheckSome 事件
bootstrapTable('resetWidth'); 重新设置列头和列尾的宽度去适应当前列的宽度(1.18 not found)
bootstrapTable('destroy'); 销毁表格
bootstrapTable('getHiddenColumns'); 获取隐藏的列
bootstrapTable('getVisibleColumns'); 获取可见的列
bootstrapTable('getScrollPosition'); 获取当前滚动条的位置,单位像素
bootstrapTable('prevPage'); 上一页
bootstrapTable('nextPage'); 下一页
bootstrapTable('togglePagination'); 切换分页参数
bootstrapTable('toggleView'); 切换 card/table 视图
bootstrapTable('getData',useCurrentPage=true); 获取当前表格中加载的数据,参数useCurrentPage为true 将返回当前页内的数据
bootstrapTable('getRowByUniqueId',id); 根据唯一ID获取行数据
bootstrapTable('load',data); 将新数据加载到表格中 一旦成功加载将替换原数据输出在html,data的格式为数组形式的json如:data = "[{"a": 1}, {"a": 2}]";JSON.parse(data);bootstrapTable('load',data);
bootstrapTable('append',data); 将新数据加载到表格末尾中 data的格式同load一样
bootstrapTable('prepend',data); 将新数据插入到表格头部 data的格式与load一样
bootstrapTable('remove',field,values); 从表格中移除列名为指定值的数据,包含2个参数field: 列名values: 列名取值数组
bootstrapTable('removeByUniqueId',id); 根据唯一ID移除行数据
bootstrapTable('insertRow',index,row); 插入多个新行到指定位置,每一行包含以下参数 index:要插入到行的索引 row: 要插入的行数据
bootstrapTable('updateByUniqueId',id,row); 根据唯一ID更新行数据每一行 id: 唯一ID row: 新的行数据
bootstrapTable('showRow',index,uniqueId); 显示指定行,至少需包含两个任意参数
bootstrapTable('hideRow',row,index); 隐藏指定行,至少需包含以下任意参数 index:行索引
bootstrapTable('getHiddenRows',true); 获取所有隐藏的行数据,当参数为 true 会将隐藏行进行显示
bootstrapTable('mergeCells',index,field,rowspan,colspan); 合并多个单元格 index: 行索引 field: 列名称 rowspan: 合并多少行 colspan: 合并多少列
bootstrapTable('updateCell',index,field,value); 更新一个单元格数据 index: 行索引field: 列名称value: 新列值 禁止表格重新初始化需添加参数{reinit: false}
bootstrapTable('refresh ',{}); 重新加载远程数据,可以设置 {silent: true}静默加载数据,同时设置 {url: newUrl, pageNumber: pageNumber, pageSize: pageSize} 改变数据请求地址和分页参数,请求参数通过 {query: {foo: 'bar'}} 修改
bootstrapTable('refreshOptions',options); 刷新表格的参数
bootstrapTable('resetSearch',text); 设置搜索内容
bootstrapTable('check',index); 选中某一行,索引从0开始
bootstrapTable('uncheck',index); 取消选中某一行,索引从0开始
bootstrapTable('checkBy',field,{value,...}}); 根据列名选则行数据
$("#table").bootstrapTable("checkBy", {field:"field_name", values:["value1","value2","value3"]})
bootstrapTable('uncheckBy',field,{value,...}}); 根据列名取消选中行数据
bootstrapTable('resetView',{height:200}); 重置表格视图
bootstrapTable('showColumn',field); 显示指定列
bootstrapTable('hideColumn',field); 隐藏指定列
bootstrapTable('scrollTo',value); 使滚动条滚动到指定位置,单位像素,'bottom' 滚动条滚动到底
bootstrapTable('filterBy',{}); 在client模式下,对表格数据进行过滤,语法示例如下{age: 10, hairColor: ["blue", "red", "green"]}
bootstrapTable('selectPage',page); 跳转到指定页
bootstrapTable('expandRow',index); 当详细视图设置为True时,展开指定索引的行的详细视图
bootstrapTable('collapseRow',index); 当详细视图设置为True时,收起指定索引的行的详细视图
bootstrapTable('expandAllRows',true); 当详细视图设置为True时,展开所有行的详细视图
bootstrapTable('collapseAllRows',true); 当详细视图设置为True时,收起所有行的详细视图
bootstrapTable('updateCellById',{id:xx,field:xx,value:xx}); 根据唯一ID更新指定单元格(1.18 not found)
bootstrapTable('updateColumnTitle',——})
bootstrapTable('updateCellByUniqueId',——})
bootstrapTable('toggleFullscreen',——})
bootstrapTable('toggleDetailView',——})
bootstrapTable('expandRowByUniqueId',——})
bootstrapTable('collapseRowByUniqueId',——})
bootstrapTable('updateFormatText',——})
bootstrapTable('updateRow',——})
~~~
## **属性:**
~~~
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: '/Home/GetDepartment', //请求后台的URL(*)用于从远程站点请求数据的URL
method: 'get', //请求方式(*)
toolbar: '#toolbar', //工具栏按钮用哪个容器 一个jQuery 选择器,指明自定义的 buttons toolbar。例如:#buttons-toolbar, .buttons-toolbar 或 DOM 节点
toolbarAlign:'left' //指示如何对齐自定义工具栏。可以使用'left','right'
buttonsToolbar:'', //一个jQuery选择器,指示按钮工具栏,例如:#buttons-toolbar,.buttons-toolbar或DOM节点
buttonsAlign:'right', //指示如何对齐工具栏按钮。可以使用'left','right'。
buttonsClass:'secondary', //定义表按钮的Bootstrap类(在'btn-'之后添加)
buttons:function () { //自定义工具栏按钮
return {
btnUsersAdd: {
text: 'Highlight Users',
icon: 'fa-users',
event: function () {
alert('Do some stuff to e.g. search all users which has logged in the last week')
},
attributes: {
title: 'Search all users which has logged in the last week'
}
},
btnAdd: {
text: 'Add new row',//按钮上显示的信息 不过需要在table标签加上showButtonText=true
icon: 'fa-plus',//按钮的图标
render:true//默认是否显示按钮,当为false隐藏时您添加数据属性时,该按钮再次可见
'event': {//按钮事件,如果只时单个事件可以直接使用函数如上面的那个
'click': () => { },
'mouseenter': () => { },
'mouseleave': () => { }
},
attributes: {//为按钮添加额外属性,如这里给按钮添加title
title: 'Add a new row to the table'
}
}
}
},
buttonsOrder:['paginationSwitch', 'refresh', 'toggle', 'fullscreen', 'columns'],//工具栏按钮重新排序
buttonsPrefix:'btn', // 定义表格的前缀
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*) 设置为true以在表格底部显示分页工具栏默认false
sortable: true, //是否启用排序 列中也有此变量
sortName:'', //定义要排序的列 没定义默认都不排列,同sortOrder结合使用,sortOrder没写的话列默认递增(asc)
sortOrder: "asc", //定义列排序顺序,只能是'asc'或'desc'。
sortStable: false, //如果你把此属性设为了true)我们将为此行添加'_position'属性 (别看错了,是sortStable,sortable在下面)设为true,则和sort部分一样,区别是:在排序过程中,如果存在相等的元素,则原来的顺序不会改变
queryParams: oTableInit.queryParams,//传递参数(*)
sidePagination: "server", //分页方式:client客户端分页(默认),server服务端分页(*)
silentSort:true,//设置为false以便对加载的消息数据进行排序。当sidePagination选项设置为“server”时,此选项有效。
pageNumber:1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
search: true, //是否显示表格搜索input,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
strictSearch: true, //启用严格搜索
showColumns: false, //是否显示所有的列 设置为true以显示列下拉列表(一个可以设置显示想要的列的下拉f按钮)
showColumnsSearch:false, //设置true 为显示对列过滤器的搜索
showColumnsToggleAll:false, //设置true 为在列选项/下拉列表中显示“全部切换”复选框。
showRefresh: true, //是否显示刷新按钮 默认false
minimumCountColumns: 1, //最少允许的列数 要从列下拉列表中隐藏的最小列数
clickToSelect: true, //是否启用点击选中行
height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
idField:'', //表明哪个是字段是标识字段
uniqueId: "ID", //表明每一行的唯一标识字段,一般为主键列
showToggle:true, //是否显示详细视图和列表视图的切换按钮
cardView: false, //是否显示详细视图 设置为true以显示卡片视图表,例如mobile视图(卡片视图)
detailView: false, //设置为true以显示detail 视图表(细节视图)
detailViewAlign:'left', //指示如何对齐详细信息视图图标。,可以使用。'left''right'
detailViewByClick:false, //设置为true时在单击单元格时切换细节视图
detailViewIcon:true, //设置为true时显示详细视图列(plus/minus图标)
locale:'zh-CN',
height:800, //固定表格的高度
classes:'table table-bordered table-hover',//表的类名。其他类名参考:`'table'` `'table-bordered'(列内外(竖)边框)` `'table-hover'(指向单元格变色)` `'table-striped'(行灰白相间)` `'table-dark'(灰黑背景)` `'table-sm'(紧凑型表格)` `'table-borderless'(去掉内边框)`默认情况下,表格是有界的。
theadClasses:'',// 表thead的类名 如使用.thead-light或.thead-dark使theads显示为浅灰色或深灰色。
rowStyle:function(row,index){// 设置行样式的函数支持类或css
if(index==0){
return{
classes:'warning',
css:{'color':'red'}
}
}
},
rowAttributes:function(row,index){// row属性formatter函数,支持所有自定义属性 (给tr添加属性)
return {
'data-toggle': 'popover',
'data-placement': 'bottom',
'data-trigger': 'hover',
'data-content': [
'Index: ' + index,
'ID: ' + row.id,
'Name: ' + row.name,
'Price: ' + row.price
].join(', ')
}
},
undefinedText:'-',// 定义默认的未定义文本
sortClass:'',//已排序的td元素的类名
rememberOrder:false,//设置为true以记住每列的顺序
data:[],// 要加载的数据 [] or {}
contentType:'application/json',//请求远程数据的contentType,例如:application/x-www-form-urlencoded。
dataType:'json',//您希望服务器返回的数据类型
totalField:'total',//Key in incoming json containing 'total' data.
dataField:'rows',//名称写自己定义的每列的字段名,也就是key,通过key才能给某行的某列赋value原文:获取每行数据json内的key
onlyInfoPagination:false,//设置为true以仅显示表中显示的数据量。它需要将分页表选项即pagination设置为true
paginationLoop:true,//设置为true以启用分页连续循环模式
paginationHAlign:'right',//分页条水平方向的位置,默认right(最右),可选left
totalRows:0,//该属性主要由分页服务器传递,易于使用
paginationDetailHAlign:'left',//如果解译的话太长,举个例子,paginationDetail就是“显示第 1 到第 8 条记录,总共 15 条记录 每页显示 8 条记录”,默认left(最左),可选right
paginationVAlign:'bottom',//分页条垂直方向的位置,默认bottom(底部),可选top、both(顶部和底部均有分页条)
paginationPreText:'<',//上一页的按钮符号
paginationNextText:'>',//下一页的按钮符号
paginationSuccessivelySize:5,//分页时会有<12345...80>这种格式而5则表示显示...左边的的页数
paginationPagesBySide:1,//...右边的最大连续页数如改为2则 <1 2 3 4....79 80>
paginationUseIntermediate:false,//计算并显示中间页面以便快速访问 true 会将...替换为计算的中间页数42
paginationParts:['pageInfo', 'pageSize', 'pageList'],//定义了分页信息哪些部分可见'pageInfo'(显示总行数且此页行范围), 'pageSize'(每页多少行下拉框), 'pageList'(分页按钮),'pageInfoShort'(只显示总行数)
searchOnEnterKey:false,// true时搜索方法将一直执行,直到按下Enter键(即按下回车键才进行搜索)
trimOnSearch:true,//默认true,自动忽略空格
searchAlign:'right',//指定搜索输入框的方向。可以使用'left','right'。
searchTimeOut:500,//设置搜索触发超时
searchText:'',//设置搜索文本框的默认搜索值
searchAccentNeutralise:false,//如果你想使用重音中和功能(如搜索José则能搜索出Jose),设置为true
searchSelector:false,//自定义搜索框选择器。如果设置了这个选项(必须是一个有效的dom选择器,例如searchSelector:'#customSearchinput'),发现的dom元素(应该是一个元素)将被用作表搜索,而不是内置的搜索输入
showHeader:true,//设置为false以隐藏表头
showFooter:false,//设置为true以显示摘要页脚行(固定也交 比如显示总数什么的最合适)
showPaginationSwitch:false,//设置为true以显示分页组件的切换按钮
showFullscreen:false,// 设置为true以显示全屏按钮
smartDisplay:true,//设置为true以巧妙地显示分页或卡片视图
escape:false,// 转义字符串以插入HTML,替换 &, <, >, “, `, 和 ‘字符 跳过插入HTML中的字符串,替换掉特殊字符
selectItemName:'btSelectItem',// 设置radio 或者 checkbox的字段名称
clickToSelect:false,//设置为true时 在点击列时可以选择checkbox或radio
singleSelect:false,// 默认false,设为true则允许复选框仅选择一行(不能多选了?)
checkboxHeader:true,//设置为false以隐藏标题行中的check-all复选框 即隐藏全选框
maintainSelected:false,// true时点击分页按钮或搜索按钮时,记住checkbox的选择项 设为true则保持被选的那一行的状态
filterOptions:{ filterAlgorithm: 'and' },//定义算法的默认过滤器选项, filterAlgorithm: 'and' 意味着所有给定的过滤器必须匹配, filterAlgorithm: 'or' 意味着给定的过滤器之一必须匹配
footerField:,//定义页脚对象的键(从数据数组或服务器响应json)。footer对象可用于设置/定义页脚折页和/或页脚的值。
headerStyle:{},//标头样式格式化程序函数采用一个参数即column: 列对象headerStyle:functionheaderStyle(column){return{css:{'font-weight':'normal'},classes:'my-class'}}
loadingFontSize:'auto',//要定义加载文本的字体大小,默认值是,它将根据表的宽度自动计算,在12px和32px之间。
loadingTemplate:function (loadingMessage) { return '<span class="loading-wrap">' + '<span class="loading-text">' + loadingMessage + '</span>' + '<span class="animation-wrap"><span class="animation-dot"></span></span>' + '</span>' },//可自定义加载方式(正在加载时的动画)。parameters对象包含:loadingMessage
maintainMetaData:false,//设置true为在更改页面和搜索上维护以下元数据:1选定的行2隐藏的行
multipleSelectRow:false,//设置true以启用多选行。可以使用ctrl键单击以选择一行,或使用shift键单击以选择一系列行
showButtonText:true,//所有按钮都将在其上显示文本
showExtendedPagination:false,//设置true 为显示分页的扩展版本(包括不带过滤器的所有行的计数)。如果在服务器端使用分页,请使用totalNotFilteredField来定义计数
showSearchButton:false,//设置true 为在搜索输入后面显示搜索按钮。仅在按下按钮时才会执行搜索(例如,以防止交通或加载时间)
sortReset:false,//设置为true时在第三次点击时重置排序
totalNotFiltered:0,//此属性主要由分页服务器传入,该服务器易于使用
totalNotFilteredField:'totalNotFiltered'//json响应中的字段,用于服务器端定义分页计数(服务器端传入数据中包含totalNotFiltered: 800),用于.showExtendedPagination
virtualScroll:false,//设置 true 为启用虚拟滚动以显示虚拟的 “infinite” 列表
virtualScrollItemHeight:'undefined',//如果未定义此选项,则默认情况下我们将使用第一项的高度。如果虚拟商品的高度将明显大于默认高度,则提供此功能非常重要。此维度用于帮助确定初始化时应创建多少个单元格,并帮助计算可滚动区域的高度。此高度值只能使用px单位
visibleSearch:false,//设置true 为仅在可见列/数据中搜索,如果数据包含其他未显示的值,则在搜索时将忽略它们
icons:{//定义工具栏,分页和详细信息视图中使用的图标
paginationSwitchDown: 'fa-caret-square-down',
paginationSwitchUp: 'fa-caret-square-up',
refresh: 'fa-sync',
toggleOff: 'fa-toggle-off',
toggleOn: 'fa-toggle-on',
columns: 'fa-th-list',
detailOpen: 'fa-plus',
detailClose: 'fa-minus',
fullscreen: 'fa-arrows-alt'
},
iconSize:'undefined',// 定义icon图表的尺寸大小html对应为data-icon-undefined (默认btn)、data-icon-lg 大按钮的尺寸(btn-lg)...; 这里的值依次为undefined => btnxs => btn-xssm => btn-smlg => btn-lg
iconsPrefix:'fa',//定义图标集名称(FontAwesome的'glyphicon'或'fa')。默认情况下,'fa'用于Bootstrap v4
queryParamsType:'limit',//设置'limit'以使用RESTFul类型发送查询参数。
ajaxOptions:{},//提交ajax请求的其他选项。值列表:jQuery.ajax。
customSort:function(sortName,sortOrder,data){//自定义排序功能(用来代替自带的排序功能),需要两个参数(可以参考前面):
var order = sortOrder === 'desc' ? -1 : 1
data.sort(function (a, b) {
var aa = +((a[sortName] + '').replace(/[^\d]/g, ''))
var bb = +((b[sortName] + '').replace(/[^\d]/g, ''))
if (aa < bb) {
return order * -1
}
if (aa > bb) {
return order
}
return 0
})
},:
ajax:function(){},// 一种替换ajax调用的方法。应该实现与jQuery ajax方法相同的API
queryParams: function(params) { // 请求远程数据时,您可以通过修改queryParams来发送其他参数即server分页时,这里的queryParams参数就是提交到服务器端的参数了
return params;
//返回给服务器的格式如下{search: "", sort: undefined, order: "asc", offset: 0, limit: 20}
//我们可以在这修改请求服务器的参数,
//当queryParamsType时limit 参数包含limit、offset、order、search、sort当否则它包含pageSize, pageNumber, searchText, sortName, sortOrder
//返回 false则中断请求(return false)
},
responseHandler:function(res) { //服务端响应发送的数据会经过这里由我们处理后再显示在html 详细的例子
return res;
ajax请求成功后,在发放数据之前可以对数据进行处理,比如修改下数据的值什么的
},
customSearch:function(data,text){// 执行自定义搜索功能替换内置搜索功能,需要两个参数
return data.filter(function (row) {return row.field.indexOf(text) > -1})
},
footerStyle:function(column){// 页脚样式格式化程序函数,只需一个参数 m默认{}
return {
css: { 'font-weight': 'normal' },
classes: 'my-class'
}
},
detailFormatter:function(index,row,element){//前提:detailView设为true,启用了显示detail view。- 用于格式化细节视图- 返回一个字符串,通过第三个参数element直接添加到细节视图的cell(某一格)中,其中,element为目标cell的jQuery element
return '';
}, 详细例子
detailFilter:function(index,row){//当detailView设置为true时,每行启用扩展。返回true并且将启用该行以进行扩展,返回false并禁用该行的扩展。默认函数返回true以启用所有行的扩展。
return true
},
ignoreClickToSelectOn:function(element){// 包含一个参数:element: 点击的元素。返回 true 是点击事件会被忽略,返回 false 将会自动选中。该选项只有在 clickToSelect 为 true 时才生效。
return $.inArray(element.tagName, ['A', 'BUTTON']
},
onLoadSuccess: function (data){//表选项也可以时使用事件,列选项的事件则是在events
//数据加载成功时触发
console.log(data);
},
columns: [
{checkbox: false},
{radio: false},
{
radio: false,//此列转成radio上面单独领出来是应为有字段显示就不需要它呀
checkbox: false,//此列转成checkbox 单独拎出来同上
field: 'sex', //设置data-field的值
title: __('Operate'),//设置data-field的值
table: table,
events: Table.api.events.operate,
formatter: Table.api.formatter.operate,//单元格格式函数 this上下文是当前列对象 字段数据经过处理现实在浏览器(表格列的按钮就是在这做的)
formatter: function (value, row, index,field){
var color;
if(value==1){
color='Green';
}else{
color="red";
}
return '<div style="color:'+color+'">'+value+'</div>';
},
titleTooltip:'列标题工具提示文本。此选项还支持标题HTML属性',
class:'定义列的类名',
rowspan:1,//指定单元格应占用的行数。
colspan:1,//指定单元格应占用的列数。
align:'center',//指定如何对齐列数据。可以使用'left','right','center'。
halign:'center',//指定如何对齐表头。可以使用'left','right','center'。
falign:'center',//指示如何对齐表格页脚。可以使用'left','right','center'。
valign:'middle',//指出如何对齐单元格数据。可以使用'top','middle','bottom'
width:'10%',//列的宽度。如果未定义,宽度将自动扩展以适合其内容。格式'100px','10%',100,如果想表格保持列自适应并且尺寸太小,则可以忽略这项(通过类等使用min / max-width)
sortable:false,//设置为true以允许列可以排序。
order:'asc',//默认排序顺序,只能是'asc'或'desc'。
visible:true,//设置为false以隐藏列项。
cardVisible:true,//设置为false以隐藏card 视图状态中的列项
switchable:true,//设置为false以禁用可切换的列项
clickToSelect:true,//设置为true时 在点击列时可以选择checkbox或radio
footerFormatter:function(data){},//当前列对象函数该函数应返回一个字符串,其中包含要在页脚单元格中显示的文本
events::{},//使用格式化函数时的单元事件监听器 四个参数event,value,row,index; html可以这么用 <th .. data-events="operateEvent">
sorter:function(a,b,rowA,rowB){},//用于进行本地排序的自定义字段排序函数(第一个字段值,第二个字段值,第一行,第二行)
sortName:'',//提供可自定义的排序名称,而不是标题中的默认排序名称或列的字段名称
cellStyle:function(value,row,index,field){
return{
css:{color:'red'},
classes:'bg-blue'
}
},//单元格样式格式化函数 支持classs和css
searchable:true,//设置为true以搜索此列的数据。
searchFormatter:true,//设置为true以搜索使用格式化数据
escape:false,//转义字符串以插入HTML,替换 &, <, >, “, `, and ‘ 字符。
showSelectTitle:false,//设置为true以使用'radio'或'singleSelect''复选框'选项显示列的标题。
checkboxEnabled:true,//设置false以禁用复选框/单选框 另一种设置<th data-checkbox="true" data-checkbox-enabled="false"></th>
detailFormatter:function(index, row, $element) { return '' },//当detailView和detailViewByClick设置为true时,格式化详细视图。返回一个String,它将被追加到细节视图单元格中(单击某个单元格时,在它下面会追加一行,这行就是详细视图行,这个参数就是返回在详细试图显示的内容),可以选择使用第三个参数直接呈现元素,这是目标单元格的一个jQuery元素。
searchHighlightFormatter:true,//格式:Boolean|Function,定义一个函数,为搜索高亮选项使用自定义高亮格式化程序
widthUnit:'px',//定义用于选项宽度的单元
},
{
field:'opreation',
tittle:'操作',
aligin:'center',
formatter:function(value,row,index,field){
return[
'<button type="button" id="btn_edit" class="btn btn-default" data-toggle="modal" data-target="#ModalInfo">修改</button>',
'<button id="btn_delete" class="btn btn-warning">删除</button>'
];
},
events:{
//触发#btn_edit这个按钮的点击事件
'click #btn_edit':function(event,value,row,index){
}
//触发#btn_detele这个按钮的点击事件
'click #btn_delete':function(){
//移除当前行的html
table.bootstrapTable('remove', {
field: 'id',
values: [row.id]
});
}
}
}
]
});
var operateEvents = {
/* 'click .like' 是类名?*/
'click .like': function (e, value, row, index) {}
}
~~~
- php更新内容
- PHP PSR 标准规范
- 辅助查询(*)
- composer项目的创建
- composer安装及设置
- composer自动加载讲解
- phpsdudy的composer操作
- git
- Git代码同时上传到GitHub和Gitee(码云)
- Git - 多人协同开发利器,团队协作流程规范与注意事项
- 删除远程仓库的文件
- github查询方法
- 错误
- 其他
- php.ini
- php配置可修改范围
- php超时
- 防跨目录设置
- 函数可变参数
- 【时间】操作
- 时间函数例子
- Date/Time 函数(不包含别名函数)
- DateTime类别名函数
- 【数字】操作
- 【字符串】操作
- 【数组】操作
- 排序
- 合并案例
- empty、isset、is_null
- echo 输出bool值
- if真假情况
- 流程控制代替语法【if (条件): endif;】
- 三元运算
- 运算符优先级
- 常量
- define与const(php5.3) 类常量
- 递归
- 单元测试
- 面向对象
- 对象(object) 与 数组(array) 的转换
- php网络相关
- 支持的协议和封装协议(如http,php://input)
- php://协议
- file://协议
- http(s)://协议
- ftp(s)://协议
- zip://, bzip2://, zlib://协议
- data://协议
- glob://协议
- expect://协议
- phar://
- ssh2
- rar://
- ogg://
- 上下文(Context)选项和参数
- 过滤器
- http请求及模拟登录
- 常用的header头部定义汇总
- HTTP响应头和请求头信息对照表
- HTTP请求的返回值含义说明
- content-type对照表
- Cache-Control对照
- curl函数
- 防止页面刷新
- telnet模拟get、post请求
- 三种方式模拟表单发布留言
- 模拟登陆
- 防盗链
- php+mysql模拟队列发送邮件
- socket
- 使用websocket实现php消息实时推送完整示例
- streams
- Stream函数实现websocket
- swoole
- 网络编程基本概念
- 全局变量域超全局变量
- 超全局变量
- $_ENV :存储了一些系统的环境变量
- $_COOKIE
- $_SESSION
- $_FILES
- $_SERVER
- 正则
- php正则函数
- 去除文本中的html、xml的标签
- 特殊符号
- \r\n
- 模式修正符
- 分组
- 断言(环视?)
- 条件表达式
- 递归表达式 (?R)
- 固化分组
- 正则例子
- 提取类文件的公共方法
- 抓取网页内容
- 匹配中文字符
- 提取sql日志文件
- 框架
- 文件操作
- 自动加载spl_autoload_register
- 文件加载
- 文件的上传下载
- 常见的mimi类型
- 文件断点续传
- 下载文件防盗链
- 破解防盗链
- 将字节转为人可读的单位
- 无限分类
- 短信验证码
- 短信宝
- 视频分段加载
- 隐藏地址
- MPEG DASH视频分片技术
- phpDoc注释
- @错误抑制符
- 字符编码
- PHP CLI模式开发
- CGI、FastCGI和PHP-FPM关系图解
- No input file specified的解决方法
- SAPI(PHP常见的四种运行模式)
- assert断言
- 轮询(Event Loop)
- 异常处理
- 异常分类
- php系统异常
- 错误级别
- set_error_handler
- set_exception_handler
- register_shutdown_function
- try catch
- tp5异常处理类解析
- 文件上传相关设置
- 进程/线程/协程
- 协程
- 什么是协程
- 引用&
- Heredoc和Nowdoc语法
- 类基础
- 系统预定义类
- pdo
- 类的三大特性:封装,继承,多态
- 魔术方法
- extends继承
- abstract 抽象类
- interface 接口(需要implements实现)
- 抽象类和接口的区别
- 多态
- static
- final
- serialize与unserialize
- instanceof 判断后代子类
- 类型约束
- clone克隆
- ::的用法
- static::class、self::class
- new self()与new static()
- this、self、static、parent、super
- self、static、parent:后期静态绑定
- PHP的静态变量
- php导入
- trait
- 动态调用类方法
- 参数及类型申明
- 方法的重载覆盖
- return $a && $b
- 类型声明
- 设计思想
- 依赖注入与依赖倒置
- MVC模式与模板引擎
- 模版引擎
- smarty模版
- 系统变量、全局变量
- 语言切换
- 函数-给函数默认值
- 流程控制-遍历
- 模版加载
- 模版继承
- blade
- twig
- Plates
- 创建型模式(创建类对象)--单原二厂建
- (*)单例模式(保证一个类仅有一个实例)
- (*)工厂模式(自动实例化想要的类)
- 原型模式(在指定方法里克隆this)
- 创建者模式(建造者类组装近似类属性)
- 结构型模式 --桥(帮)组享外带装适
- 适配器模式(Adapter 用于接口兼容)
- 桥接模式(方法相同的不同类之间的快速切换)
- 装饰模式(动态增加类对象的功能 如游戏角色的装备)
- 组合模式(用于生成类似DOMDocument这种节点类)
- 外观模式(门面(Facade)模式 不同类的统一调用)
- 享元模式
- 代理模式
- 行为型模式--观摩职命状-备爹在房中洁厕
- (*)观察者模式
- (*)迭代器模式(Iterator)
- 模板方法模式 Template
- 命令模式(Command)
- 中介者模式(Mediator)
- 状态模式(State)
- 职责链模式 (Chainof Responsibility)
- 策略模式(Strategy)
- 已知模式-备忘录模式(Memento)
- 深度模式-解释器模式(Interpreter)
- 深度模式-访问者模式(Visitor)
- (*)注册树(注射器、注册表)模式
- PHP扩展库列表
- 函数参考
- 影响 PHP 行为的扩展
- APC扩展(过时)
- APCu扩展
- APD扩展(过时)
- bcompiler扩展(过时)
- BLENC扩展 (代码加密 实验型)
- Componere扩展(7.1+)
- Componere\Definition
- Componere\Patch
- Componere \ Method
- Componere\Value
- Componere函数
- 错误处理扩展(PHP 核心)
- FFI扩展
- 基本FFI用法
- FFI api
- htscanner扩展
- inclued扩展
- Memtrack扩展
- OPcache扩展(5.5.0内部集成)
- Output Control扩展(核心)
- PHP Options/Info扩展(核心)
- 选项、 信息函数
- phpdbg扩展(5.6+内部集成)
- runkit扩展
- runkit7扩展
- scream扩展
- uopz扩展
- Weakref扩展
- WeakRef
- WeakMap
- WinCache扩展
- Xhprof扩展
- Yac(7.0+)
- 音频格式操作
- ID3
- KTaglib
- oggvorbis
- OpenAL
- 身份认证服务
- KADM5
- Radius
- 针对命令行的扩展
- Ncurses(暂无人维护)
- Newt(暂无人维护)
- Readline
- 压缩与归档扩展
- Bzip2
- LZF
- Phar
- Rar
- Zip
- Zlib
- 信用卡处理
- 加密扩展
- Crack(停止维护)
- CSPRNG(核心)
- Hash扩展(4.2内置默认开启、7.4核心)
- Mcrypt(7.2移除)
- Mhash(过时)
- OpenSSL(*)
- 密码散列算法(核心)
- Sodium(+)
- 数据库扩展
- 数据库抽象层
- DBA
- dbx
- ODBC
- PDO(*)
- 针对各数据库系统对应的扩展
- CUBRID
- DB++(实验性)
- dBase
- filePro
- Firebird/InterBase
- FrontBase
- IBM DB2
- Informix
- Ingres
- MaxDB
- Mongo(MongoDB老版本)
- MongoDB
- mSQL
- Mssql
- MySQL
- OCI8(Oracle OCI8)
- Paradox
- PostgreSQL
- SQLite
- SQLite3
- SQLSRV(SQL Server)
- Sybase
- tokyo_tyrant
- 日期与时间相关扩展
- Calendar
- 日期/时间(核心)
- HRTime(*)
- 文件系统相关扩展
- Direct IO
- 目录(核心)
- Fileinfo(内置)
- 文件系统(核心)
- Inotify
- Mimetype(过时)
- Phdfs
- Proctitle
- xattr
- xdiff
- 国际化与字符编码支持
- Enchant
- FriBiDi
- Gender
- Gettext
- iconv(内置默认开启)
- intl
- 多字节字符串(mbstring)
- Pspell
- Recode(将要过时)
- 图像生成和处理
- Cairo
- Exif
- GD(内置)
- Gmagick
- ImageMagick
- 邮件相关扩展
- Cyrus
- IMAP
- Mail(核心)
- Mailparse
- vpopmail(实验性 )
- 数学扩展
- BC Math
- GMP
- Lapack
- Math(核心)
- Statistics
- Trader
- 非文本内容的 MIME 输出
- FDF
- GnuPG
- haru(实验性)
- Ming(实验性)
- wkhtmltox(*)
- PS
- RPM Reader(停止维护)
- RpmInfo
- XLSWriter Excel操作(*)
- php第三方库非扩展
- 进程控制扩展
- Eio
- Ev
- Expect
- Libevent
- PCNTL
- POSIX
- 程序执行扩展(核心)
- parallel
- pthreads(*)
- pht
- Semaphore
- Shared Memory
- Sync
- 其它基本扩展
- FANN
- GeoIP(*)
- JSON(内置)
- Judy
- Lua
- LuaSandbox
- Misc(核心)
- Parsekit
- SeasLog(-)
- SPL(核心)
- SPL Types(实验性)
- Streams(核心)
- stream_wrapper_register
- stream_register_wrapper(同上别名)
- stream_context_create
- stream_socket_client
- stream_socket_server
- stream_socket_accept
- stream_socket_recvfrom
- stream_socket_sendto
- Swoole(*)
- Tidy扩展
- Tokenizer
- URLs(核心)
- V8js(*)
- Yaml
- Yaf
- Yaconf(核心)
- Taint(检测xss字符串等)
- Data Structures
- Igbinary(7.0+)
- 其它服务
- 网络(核心)
- Sockets
- socket_create
- socket_bind(服务端即用于监听的套接字)
- socket_listen(服务端)
- socket_accept(服务端)
- socket_connect(客户端)
- socket_read
- socket_recv(类似socket_read)
- socket_write
- socket_send
- socket_close
- socket_select
- socket_getpeername
- socket_getsockname
- socket_get_option
- socket_getopt(socket_get_option的别名)
- socket_set_option
- socket_setopt( socket_set_option的别名)
- socket_recvfrom
- socket_sendto
- socket_addrinfo_bind
- socket_addrinfo_connect
- socket_addrinfo_explain
- socket_addrinfo_lookup
- socket_clear_error
- socket_last_error
- socket_strerror
- socket_cmsg_space
- socket_create_listen
- socket_create_pair
- socket_export_stream
- socket_import_stream
- socket_recvmsg
- socket_sendmsg
- socket_set_block
- socket_set_nonblock
- socket_shutdown
- socket_wsaprotocol_info_export
- socket_wsaprotocol_info_import
- socket_wsaprotocol_info_release
- cURL(*)
- curl_setopt
- Event(*)
- chdb
- FAM
- FTP
- Gearman
- Gopher
- Gupnp
- Hyperwave API(过时)
- LDAP(+)
- Memcache
- Memcached(+)
- mqseries
- RRD
- SAM
- ScoutAPM
- SNMP
- SSH2
- Stomp
- SVM
- SVN(试验性的)
- TCP扩展
- Varnish
- YAZ
- YP/NIS
- 0MQ(ZeroMQ、ZMQ)消息系统
- 0mq例子
- ZooKeeper
- 搜索引擎扩展
- mnoGoSearch
- Solr
- Sphinx
- Swish(实验性)
- 针对服务器的扩展
- Apache
- FastCGI 进程管理器
- IIS
- NSAPI
- Session 扩展
- Msession
- Sessions
- Session PgSQL
- 文本处理
- BBCode
- CommonMark(markdown解析)
- cmark函数
- cmark类
- Parser
- CQL
- IVisitor接口
- Node基类与接口
- Document
- Heading(#)
- Paragraph
- BlockQuote
- BulletList
- OrderedList
- Item
- Text
- Strong
- Emphasis
- ThematicBreak
- SoftBreak
- LineBreak
- Code
- CodeBlock
- HTMLBlock
- HTMLInline
- Image
- Link
- CustomBlock
- CustomInline
- Parle
- 类函数
- PCRE( 核心)
- POSIX Regex
- ssdeep
- 字符串(核心)
- 变量与类型相关扩展
- 数组(核心)
- 类/对象(核心)
- Classkit(未维护)
- Ctype
- Filter扩展
- 过滤器函数
- 函数处理(核心)
- quickhash扩展
- 反射扩展(核心)
- Variable handling(核心)
- Web 服务
- OAuth
- api
- 例子:
- SCA(实验性)
- SOAP
- Yar
- XML-RPC(实验性)
- Windows 专用扩展
- COM
- 额外补充:Wscript
- win32service
- win32ps(停止更新且被移除)
- XML 操作(也可以是html)
- libxml(内置 默认开启)
- DOM(内置,默认开启)
- xml介绍
- 扩展类与函数
- DOMNode
- DOMDocument(最重要)
- DOMAttr
- DOMCharacterData
- DOMText(文本节点)
- DOMCdataSection
- DOMComment(节点注释)
- DOMDocumentFragment
- DOMDocumentType
- DOMElement
- DOMEntity
- DOMEntityReference
- DOMNotation
- DOMProcessingInstruction
- DOMXPath
- DOMException
- DOMImplementation
- DOMNamedNodeMap
- DOMNodeList
- SimpleXML(内置,5.12+默认开启)
- XMLReader(5.1+内置默认开启 用于处理大型XML文档)
- XMLWriter(5.1+内置默认开启 处理大型XML文档)
- SDO(停止维护)
- SDO-DAS-Relational(试验性的)
- SDO DAS XML
- WDDX
- XMLDiff
- XML 解析器(Expat 解析器 默认开启)
- XSL(内置)
- 图形用户界面(GUI) 扩展
- UI
- PHP SPL(PHP 标准库)
- 数据结构
- SplDoublyLinkedList(双向链表)
- SplStack(栈 先进后出)
- SplQueue(队列)
- SplHeap(堆)
- SplMaxHeap(最大堆)
- SplMinHeap(最小堆)
- SplPriorityQueue(堆之优先队列)
- SplFixedArray(阵列【数组】)
- SplObjectStorage(映射【对象存储】)
- 迭代器
- ArrayIterator
- RecursiveArrayIterator(支持递归)
- DirectoryIterator类
- FilesystemIterator
- GlobIterator
- RecursiveDirectoryIterator
- EmptyIterator
- IteratorIterator
- AppendIterator
- CachingIterator
- RecursiveCachingIterator
- FilterIterator(遍历并过滤出不想要的值)
- CallbackFilterIterator
- RecursiveCallbackFilterIterator
- RecursiveFilterIterator
- ParentIterator
- RegexIterator
- RecursiveRegexIterator
- InfiniteIterator
- LimitIterator
- NoRewindIterator
- MultipleIterator
- RecursiveIteratorIterator
- RecursiveTreeIterator
- 文件处理
- SplFileInfo
- SplFileObject
- SplTempFileObject
- 接口 interface
- Countable
- OuterIterator
- RecursiveIterator
- SeekableIterator
- 异常
- 各种类及接口
- SplSubject
- SplObserver
- ArrayObject(将数组作为对象操作)
- SPL 函数
- 预定义接口
- Traversable(遍历)接口
- Iterator(迭代器)接口
- IteratorAggregate(聚合式迭代器)接口
- ArrayAccess(数组式访问)接口
- Serializable 序列化接口
- JsonSerializable
- Closure 匿名函数(闭包)类
- Generator生成器类
- 生成器(php5.5+)
- yield
- 反射
- 一、反射(reflection)类
- 二、Reflector 接口
- ReflectionClass 类报告了一个类的有关信息。
- ReflectionObject 类报告了一个对象(object)的相关信息。
- ReflectionFunctionAbstract
- ReflectionMethod 类报告了一个方法的有关信息
- ReflectionFunction 类报告了一个函数的有关信息。
- ReflectionParameter 获取函数或方法参数的相关信息
- ReflectionProperty 类报告了类的属性的相关信息。
- ReflectionClassConstant类报告有关类常量的信息。
- ReflectionZendExtension 类返回Zend扩展相关信息
- ReflectionExtension 报告了一个扩展(extension)的有关信息。
- 三、ReflectionGenerator类用于获取生成器的信息
- 四、ReflectionType 类用于获取函数、类方法的参数或者返回值的类型。
- 五、反射的应用场景
- phpRedis
- API
- API详细
- redis DB 概念:
- 通用命令:rawCommand
- Connection
- Server
- List
- Set
- Zset
- Hash
- string
- Keys
- 事物
- 发布订阅
- 流streams
- Geocoding 地理位置
- lua脚本
- Introspection 自我检测
- biMap
- 原生
- php-redis 操作类 封装
- redis 队列解决秒杀解决超卖:
- swoole+框架笔记
- 安装及常用Cli操作
- TCP
- 4种回调函数的写法
- easyswoole
- 目录结构
- 配置文件
- Linux+Nginx
- 前置
- linux
- 开源网站镜像及修改yum源
- 下载linux
- Liunx中安装PHP7.4 的三种方法(Centos8)
- yum安装
- 源码编译安装
- LNMP一键安装
- 查看linux版本号
- 设置全局环境变量
- 查看php.ini必须存放的位置
- 防火墙与端口开放
- nohup 后台运行命令
- linux 查看nginx,php-fpm运行用户及用户组
- 网络配置
- CentOS中执行yum update时报错
- 关闭防火墙
- 查看端口是否被占用
- 查看文件夹大小
- nginx相关
- 一个典型的nginx配置
- nginx关于多个项目的配置(易于管理)
- nginx.config配置文件的结构
- 1、events
- 2、http
- nginx的location配置详解
- Nginx相关命令
- Nginx安装
- 配置伪静态
- 为静态配置例子
- apache
- nginx
- pathinfo模式
- Shell脚本
- bash
- shell 语言中 0 代表 true,0 以外的值代表 false。
- 变量
- shell字符串
- shell数组
- shell注释
- 向Shell脚内传递参数
- 运算符
- 显示命令执行结果
- printf
- test 命令
- 流程控制与循环
- if
- case
- for
- while
- until
- break和continue
- select 结构
- shell函数
- shell函数的全局变量和局部变量
- 将shell输出写入文件中(输出重定向)
- Shell脚本中调用另一个Shell脚本的三种方式
- 定时任务
- PHP实现定时任务的五种方法
- 优化
- ab压力测试
- 缓存
- opcache
- memcache
- php操作
- 数据库
- 配置
- 数据库锁机制
- 主从分布
- 数据库设计
- 逻辑设计
- 物理设计
- 字段类型的选择
- 笔记
- SET FOREIGN_KEY_CHECKS
- 字符集与乱码
- SQL插入 去除重复记录的实现
- 分区表
- nginx 主从配置
- nginx 负载均衡的配置
- 手动搭建Redis集群和MySQL主从同步(非Docker)
- Redis Cluster集群
- mysql主从同步
- 用安卓手机搭建 web 服务器
- 软件选择
- url重写
- 大流量高并发解决方案
- 权限设计
- ACL
- RBAC
- RBAC0
- RBAC1(角色上下级分层)
- RBAC2(用户角色限约束)
- RBAC3
- 例子
- Rbac.class.php
- Rbac2
- Auth.class.php
- fastadmin Auth
- tree1
- ABAC 基于属性的访问控制
- 总结:SAAS后台权限设计案例分析
- casbin-权限管理框架
- 开始使用
- casbinAPI
- casbin管理API
- RBAC API
- Think-Casbin
- 单点登录(SSO)
- OAuth授权
- OAuth 2.0 的四种方式
- 授权码
- 隐藏式
- 密码式
- 凭证式
- 更新令牌
- 例子:第三方登录
- 微服务架构下的统一身份认证和授权
- 代码审计
- 漏洞挖掘的思路
- 命令注入
- 代码注入
- XSS 反射型漏洞
- XSS 存储型漏洞
- xss过滤
- HTML Purifier文档
- 开始
- id规则
- class规则
- 过滤分类
- Attr
- AutoFormat
- CSS
- Cache
- Core
- Filter
- html
- Output
- Test
- URI
- 其他
- 嵌入YouTube视频
- 加快HTML净化器的速度
- 字符集
- 定制
- Tidy
- URI过滤器
- 在线测试
- xss例子
- 本地包含与远程包含
- sql注入
- 函数
- 注释
- 步骤
- information_schema
- sql注入的分类
- 实战
- 防御
- CSRF 跨站请求伪造
- 计动态函数执行与匿名函数执行
- unserialize反序列化漏洞
- 覆盖变量漏洞
- 文件管理漏洞
- 文件上传漏洞
- 跳过登录
- URL编码对照表
- XXE
- 前端、移动端
- html5
- meta标签
- flex布局
- javascript
- jquery
- 选择器
- 精细分类
- 事件
- on事件无效:
- jquery自定义事件
- 表单操作
- 通用
- select
- checkbox
- radio
- js正则相关
- js中判断某字符串含有某字符出现的次数
- js匹配指定字符
- $.getjson方法配合在url上传递callback=?参数,实现跨域
- pajax入门
- jquery的extend插件制作
- jquery的兼容
- jquery的连续调用:
- $ 和 jQuery 及 $() 的区别
- 页面响应顺序及$(function(){})等使用
- 匿名函数:
- ajax
- 获取js对象所有方法
- dom加载
- ES6函数写法
- ES6中如何导入和导出模块
- 数组的 交集 差集 补集 并集
- phantomjs
- js数组的map()方法操作json数组
- 实用函数
- js精确计算CalcEval 【价格计算】 浮点计算
- js精确计算2
- js数组与对象的遍历
- bootstrap
- class速查
- 常见data属性
- data-toggle与data-target的作用
- 组件
- bootstrapTable
- 表选项
- 表选项2
- 示例
- 数据格式(json)
- 用法(row:行,column:列)
- Bootstrap-table使用footerFormatter做统计列功能
- 示例2
- JQuery-Jquery的TreeGrid插件
- 服务器端分页
- 合并单元格1
- 合并单元格2
- 合并单元格3
- 合并单元格4
- 合并单元格5(插件)
- 列求和
- 添加行,修改行、扩展行数据
- 扩展
- 开源项目
- PhpSpreadsheet
- 实例
- 会员 数据库表设计
- 程序执行
- 开发总结
- API接口
- API接口设计
- json转化
- app接口
- 杂项
- 三方插件库
- 检测移动设备(包括平板电脑)
- curl封装
- Websocket
- 与谷歌浏览器交互
- Crontab管理器
- 实用小函数
- PHP操作Excel
- SSL证书
- sublime Emmet的快捷语法
- 免费翻译接口
- 接口封装
- 免费空间
- 架构师必须知道的26项PHP安全实践
- 大佬博客
- 个人支付平台
- RPC(远程调用)及框架