软件
-
LayuiAdmin 退出接口设置及对应PHP后端代码分享
一、后端退出 将session清空,按layui要求的接口格式返回数据。
123456789public function logout(){session(null);$arr=array();$arr['code']=0;$arr['msg']="退出成功";$arr['url'] = '/index/login/login';echo json_encode($arr);}二、Layuiadmin执行退出 找到\modules\common.js,可以参考如下修改:
12345678910111213141516//退出admin.events.logout = function(){//执行退出接口admin.req({url: '/index/login/logout',type: 'get',data: {},done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行//清空本地记录的 token,并跳转到登入页admin.exit(function(){location.href = '/index/login/login';});}});};即可完成退出,并跳转登陆页面。
-
PHP中的二维数组怎么用foreach修改特定值或批量修改
之前我们已经说过怎么拼合从数据库中取出的数值并去重: PHP中数据库查询出来的二维数组去重方法 那么,我们任然有的需求是,修改指定key对应的value,或者批量修改某个字段的值,这又应该怎么做呢? 两种方式,一种是全部更改,另一种是改指定的值。 一、全部修改
123456789101112131415161718public function array_test(){// 修改 二维数组中的 name为 Getchar$users = array(array('name' => 'GetcharZp', 'age' => 19),array('name' => 'Mcx', 'age' => 18));foreach ($users as &$user) {$user['name'] = 'Getchar';}unset($user); // 销毁掉 user 引用print_r($users);}如上,整个二维数组中的name全部…
-
PHP中数据库查询出来的二维数组去重方法
有时候,我们需要合并多次查询结果来给前端呈现,这时就要合并二维数组。 二维数组去重,分两种情况,其一,是ID不重复,这种情况比较多,方法如下。 二维数组ID去重 1、定义方法
123456789101112131415161718public function remove_duplicates($arr, $key){$tmp_arr = array();foreach ($arr as $k => $v) {if (in_array($v[$key], $tmp_arr)) {//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回trueunset($arr[$k]);} else {$tmp_arr[] = $v[$key];}}sort($arr);return $arr;}2、调用方法
123$list = array_merge($public,$appoint);$key = 'id';$list = $this->remove_duplicates($list , $key);二维数组内容去重 [crayon-67…
-
PHP数字前补0方法,月份个位数前面补全0的方法
比如我们只做表单是给定的是数字,123456789,以及10/11/12,则补全的方式有: 1、前端定义value补全 下拉选框或其他情形显示123456789,而value给定01/02/03/04/05/06/07/08/09,即可。 2、后端PHP处理
12$params = input();$params['month'] = sprintf("%02d", $params['month']);语法[crayon-673f446e…
-
ThinkPHP如何从数据库中取出数据,复制遍历修改后重新插入数据库中
最近在做账单功能,需求是一键创建账单,创建时选择要复制数据的月份,即复制一份上月的数据稍作调整后作为本月或者任意月的数据。 这就需要从数据库中取出数据,修改后再插入数据库中,实际操作是发现一些问题,这里做一下总结。 一、取出数据 1、静态方法 静态方法取出的数据是对象,object,能做修改调整,但是重新插入数据库就会繁琐一些。 2、DB类 直接引用THIN…
-
Layui下拉选框使用change无效 如何取值赋值渲染
在使用layui过程中,使用下拉选框的changge,并不能执行,具体原因没有去了解,但是layui本身有一套自己的下拉选框操作方式。
123456789form.on('select(demo)', function(data){if(data.value == 1){$("#searchSessionNum").attr("disabled","true");form.render('select');}else{$("#searchSessionNum").removeAttr("disabled");form.render('select');//select是固定写法 不是选择器}});按上方写就可以了,当然,在实际过程中可以更灵活,逻辑代码按自己需求即可。
1234567form.on('select(fund_com_ratio)', function(data){console.log(data.value);var fund_base = $("#fund_base").val();$("#fund_com_num").attr("value", fund_base*data.value/100);$("#fund_person_num").attr("value", fund_base*data.value/100);form.render('select');}); -
Python自学Day65 解析动态内容
解析动态内容 根据权威机构发布的全球互联网可访问性审计报告,全球约有四分之三的网站其内容或部分内容是通过JavaScript动态生成的,这就意味着在浏览器窗口中“查看网页源代码”时无法在HTML代码中找到这些内容,也就是说我们之前用的抓取数据的方式无法正常运转了。解决这样的问题基本上有两种方案,一是JavaScript逆向工程;另一种是渲染JavaScrip…
-
Python自学Day64 并发下载
多线程和多进程补充知识点 threading.local类 使用线程时最不愿意遇到的情况就是多个线程竞争资源,在这种情况下为了保证资源状态的正确性,我们可能需要对资源进行加锁保护的处理,这一方面会导致程序失去并发性,另外如果多个线程竞争多个资源时,还有可能因为加锁方式的不当导致死锁。要解决多个线程竞争资源的问题,其中一个方案就是让每个线程都持有资源的副本(拷…
-
Python自学Day63 存储数据
存储海量数据 数据持久化的首选方案应该是关系型数据库,关系型数据库的产品很多,包括:Oracle、MySQL、SQLServer、PostgreSQL等。如果要存储海量的低价值数据,文档数据库也是不错的选择,MongoDB是文档数据库中的佼佼者,有兴趣的读者可以自行研究。 下面的代码演示了如何使用MySQL来保存从知乎发现上爬取到的链接和页面。[crayon…
-
Python自学Day62 数据采集和解析
数据采集和解析 通过上一个章节的讲解,我们已经了解到了开发一个爬虫需要做的工作以及一些常见的问题,下面我们给出一个爬虫开发相关技术的清单以及这些技术涉及到的标准库和第三方库,稍后我们会一一介绍这些内容。 下载数据 – urllib / requests / aiohttp / httpx 解析数据 – re / lxml / beau…