- 博客(406)
- 资源 (27)
- 收藏
- 关注
原创 tp6多级控制器路由优化
项目需求:因为项目开发有版本控制。在tp5的时候,可以通过配置// 自动搜索控制器'controller_auto_search' => true来实现可以通过version/controller/action 来访问,并且不用每写一个功能都写一个路由但是,tp6的时候,不存在这样的设置了,在网上搜索了一圈,普遍的要么通过 version.controller/action 来访问,要么直接修改源码我感觉还是不满意,捣腾了下,终于解决了:思路:本质上就是将 v.
2021-08-21 12:23:22
1365
原创 字符串解析为if的判断条件(实现简单的字符串运算)
该方法适合所有的编程语言背景:想用字符串来当作if的条件,想用在auth权限管理里面虽然,php的evel()函数可以实现;但是,毕竟不安全,那就自己实现一个简单的吧!目标:支持以下运算符:>=><=<==!=&&||支持中文缺点:不支持括号,所以我称之为简单的实现<?php// $str就是要运算的字符串// $data就是数据库查询出来的数据数组// 如果只想要直接运算$str的,而
2021-08-02 11:42:19
1795
转载 什么是无后效性?
无后效性是一个问题可以用动态规划求解的标志之一,理解无后效性对求解动态规划类题目非常重要 某阶段的状态一旦确定,则此后过程的演变不再受此前各种状态及决策的影响百度百科是这样定义的,是不是很苦涩,难懂。并且网上对这个名词的解释大多都是理论性的,不好理解,今天我们通过一个例子来看看什么是无后效性 现在有一个四乘四的网格,左上角有一个棋子,棋子每次只能往下走或者往右走,现在要让棋子走到右...
2018-11-19 15:58:28
4197
转载 PHP strlen和mb_strlen的区别
先看案例:echo mb_internal_encoding();echo "<br/>";$str="D.C is 中国人"; //echo strlen($str);echo "<br>";echo mb_strlen($str,"utf-8"); echo "<br/>";echo mb_strlen
2018-11-19 15:33:36
2150
原创 array_walk_recursive把多维数组里面的所有键值和键名都取出来
取键名: array_walk_recursive($contentArr, function ($value, $key) use (&$result) { array_push($result, $key); });取键值: array_walk_recursive($contentArr, function ($value,...
2018-11-19 11:39:45
2466
原创 JS调试获取执行时间小技巧
console.time()和console.timeEnd()函数,参数名相同就是一对的console.time('名称X') //要执行的代码放中间(x段落) console.timeEnd('名称x')console.time('名称y') //要执行的代码放中间(y段落) console.timeEnd('名称y')浏览器输出console输出:名称x:....
2018-11-06 15:15:29
3174
转载 json_encode里面经常用到的 JSON_UNESCAPED_UNICODE和JSON_UNESCAPED_SLASHES
php格式化json的函数json_encode($value,$options)其中有2个比较常用到的参数JSON_UNESCAPED_UNICODE(中文不转为unicode ,对应的数字 256)JSON_UNESCAPED_SLASHES (不转义反斜杠,对应的数字 64)通常json_encode只能传入一个常量,如果同时使用2个常量怎么办?JSON_UNESCAPED_UN...
2018-10-08 11:42:53
5613
原创 PHP将上传图片自动放缩到指定分辨率,保持清晰度
class AutoImage{ private $image; public function resize($src, $width, $height){ //$src 就是 $_FILES['upload_image_file']['tmp_name'] //$width和$height是指定的分辨率 //如果想按指定比例放...
2018-08-13 11:42:09
3577
转载 UNIX中管道的理解与实现
管道是什么首先来看一个命令:cat file1 file2 | sortcat表示读取file1、file2中的数据,然后使用管道 |,将这些内容作为输入,使用sort函数作为输出,最后输出在屏幕上。管道做了什么事熟悉类UNIX系统的朋友一定经常使用管道,其实它就是用来做进程通讯的。我们很多时候需要将一个文件中的内容作为另一个文件的输入,或者将一个程序运行的结果作为另一个程...
2018-08-02 17:21:00
2644
转载 Linux文件描述符
在Linux通用I/O模型中,I/O操作系列函数(系统调用)都是围绕一个叫做文件描述符的整数展开。这不禁让人产生疑问:这个整数代表什么?一个数值代表一个文件吗?随便传一个整数进去调用可以吗?解答以上疑问,需要更深入学习——文件描述符(File Descriptor)。图解理解具体情况,需要了解由内核维护的3个数据结构:进程级文件描述符表(file descriptor table)...
2018-08-02 17:18:05
1788
转载 Linux通用I/O模型
学习Linux系统编程,文件I/O是一个不错的切入点。首先,日常操作中或多或少都使用过文件,有一定的概念;其次,文件I/O可以由几个最最基础的系统调用完成,降低入门理解难度。基础系统调用Linux下I/O操作是通用化的,不仅仅可以用来操作文件输入输出,还可以用来操作管道、FIFO、socket、终端设备等。将设备抽象成一个文件,用I/O操作控制设备是类Unix系统一大特色。最最基础的I...
2018-08-02 17:16:36
1811
转载 PHP中this,self,parent三个关键字
this,self,parent三个关键字从字面上比较好理解,分别是指这、自己、父亲。this是指向当前对象的指针(姑且用C里面的指针来看吧)self是指向当前类的指针parent是指向父类的指针(我们这里频繁使用指针来描述,是因为没有更好的语言来表达) 根据实际的例子来看看(1) thisclass UserName{ //定义成员属性 ...
2018-07-30 20:25:17
1611
1
转载 Linux 进程间通信的机制
Linux 下进程间通信的6种机制: 1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 2.信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件生,除了用于进程间通信外,进程还可以发送信号给进程本身;linu...
2018-07-30 15:27:04
1795
转载 PHP json_encode里面经常用到的 JSON_UNESCAPED_UNICODE和JSON_UNESCAPED_SLASHES
php格式化json的函数json_encode($value,$options)其中有2个比较常用到的参数JSON_UNESCAPED_UNICODE(中文不转为unicode ,对应的数字 256)JSON_UNESCAPED_SLASHES (不转义反斜杠,对应的数字 64)通常json_encode只能传入一个常量,如果同时使用2个常量怎么办?JSON_UNESCAPED_UNICODE ...
2018-05-18 17:01:32
2433
原创 关于ajax传数据到后台
ajax传整个数组到后台:先用JSON.stringify,再在后台用json_decode来接收js:$.ajax({ type:'post', url:'', data:{ s_data:JSON.stringify(arr)}});php:$s_data = input('post.s_data');//tp5写法$the_data = json_decode($s_data,true...
2018-05-18 10:38:12
2000
转载 layer父子页面交互
layer是一款近年来备受青睐的web弹层组件,官网地址是:http://layer.layui.com/可以从官网上下载最新版本。当layer以iframe层的方式弹出新的窗口(子页面),如何在子页面中访问父页面的元素和函数。 1、访问父页面元素值[javascript] view plain copyvar parentId=parent.$("#id").val();//访问父页面元素值 ...
2018-05-18 10:08:22
1611
转载 mysql之TIMESTAMP(时间戳)用法详解
timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下只要你更新了记录timestamp会自动更新时间.通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项。MySQL也有默认值timestamp,但在MySQL中,不仅是插入就算是修改也会更新timestamp的值!这样一来,就不是创建日期了,当作更新日期来使用比较好! 一、TIMES...
2018-05-05 15:25:28
12065
原创 同一个页面的多个ligerGrid共用同一个方法
在delegate方法事件中,传参是e,用e.delegateTarget.id来获取当前操作事件所在的ligerGrid的id,这样就可以区分当前操作的是哪一个ligerGrid就可以用哪一个ligerGrid的manager管理器,就可以实现多个ligerGrid共用同一个方法了...
2018-04-30 20:14:20
1688
原创 ligerGrid实现无缝动态滚动行(生成新/删除旧)
两种方案:一种是从上往下滚动://addData是一行新数据,如{"id":1,"name":"abc"}//manager.getRow(0)是第一行manager.addRow(addData,manager.getRow(0),true);//在顶部增加行var len = manager.getData().length;manager.deleteRow(len-1);//删除最后...
2018-04-30 20:07:48
1891
原创 ligerGrid动态隐藏/显示复选框
渲染ligerGrid的时候,默认隐藏复选框manager.toggleCol(0,false);//隐藏某个点击事件后,显示/隐藏复选框manager.toggleCol(0,true);//显示
2018-04-30 19:54:26
3446
原创 js复制内容,兼容所有浏览器
大概思路:创造一个新的节点,用完后删除var oInput = document.createElement('input');oInput.value = '复制内容';document.body.appendChild(oInput);oInput.select();//选择对象document.execCommand('copy');//执行浏览器复制命令document.body...
2018-04-30 19:50:03
2883
原创 Ubuntu 16.04笔记
Ubuntu 16.04开启SSH服务:安装:sudo apt-get install openssh-server启动:sudo service ssh startUbuntu的root密码:默认root密码是随机的,即每次开机都有一个新的root密码。我们可以在终端输入命令 sudo passwd,然后输入当前用户的密码,enter用winScp的sftp连Ubuntu的ssh,root用户连...
2018-04-30 19:43:48
1485
转载 Homestead 安装需要知道的一些信息
链接如果你看这篇文章的目的是 Homestead 安装加速的话,二话不说,到百度盘先找最新版本的下载:http://pan.baidu.com/s/1hrN55w4 ,一边下载一边再来看这个文章。Homestead 环境部署脚本 - 使用此脚本来构造 Homestead box 的Homestead 主项目 repo - Homestea 是一个 Vagrant 项目Homestead 文档Vag...
2018-02-26 09:50:32
1605
原创 PHP在定界符里用变量和常量
在定界符里用变量注意点:如果变量前有\号 或者 变量是在定界符里面新声明的,要在变量前多加一个\作转义符在定界符里用常量:先在定界符外,将要用的常量赋值给变量,然后在定界符里面用变量即可
2018-01-10 15:52:40
3680
原创 phpstudy 自定义php版本
在有些时候,比如用laravel的时候,phpstudy上的php低版本(小于5.6)不支持,高版本(大于7.0)又要安装VC11或14运行库。。。这都不是最麻烦的,最麻烦的是,由于先前安装了vscode2017,附带安装了2017最新版的VC运行库(大概是安装了vscode2017才会附带的吧),然后我去官网下VC14(即Visual C++ Redistributable for Vi
2018-01-09 17:07:08
3826
3
转载 php的闭包(Closure)匿名函数详解
php的闭包(Closure)也就是匿名函数,是PHP5.3引入的。闭包的语法很简单,需要注意的关键字就只有use,use是连接闭包和外界变量。$a = function() use($b) {}简单例子如下:function callback($fun) {$fun();}$msg = "Hello, ev
2017-12-29 17:33:32
1963
转载 现代 PHP 新特性 —— 闭包和匿名函数
1、概述闭包和匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。闭包是指在创建时封装周围状态的函数,即使闭包所在的环境的不存在了,闭包中封装的状态依然存在。匿名函数其实就是没有名称的函数,匿名函数可以赋值给变量,还能像其他任何PHP函数对象那样传递。不过匿名函数仍然是函数,因此可以调用,还可以传入参数,适合作为函数或方法的回调。
2017-12-29 17:30:10
1676
转载 php 内置的 web 服务器
从 PHP 5.4.0 起,PHP内置了Web服务器,这对于认为需要Apache或Nginx才能预览PHP应用的开发者来说又是一个隐藏功能。这个内置的Web服务器不应该用于生产环境,但对于本地开发来说是个极好的工具。Laravel Valet 起初就是使用这个内置的服务器,但是在1.1.0版本后将其替换为Caddy(查看相关新闻)。1、启动这个内置的Web服务器很容易启动,
2017-12-29 17:21:49
12513
4
转载 学习php反射(3)——一个依赖注入的例子
先看代码:if (PHP_SAPI != 'cli') { exit('Please run it in terminal!');}if ($argc 3) { exit('At least 2 arguments needed!');}$controller = ucfirst($argv[1]) . 'Controller';$action = 'acti
2017-12-29 16:53:26
1523
转载 学习php反射(2)——不用new方法实例化类
上一篇简单介绍了 php 反射的几个常见类的使用方法,但是用反射能做些什么,你可能还是想象不到,下面我稍微应用反射类来做点东西,大家知道实例化一个类需要用new 关键字,不用 new 可以吗?答案是可以的,用反射就能实现:首先创建一个文件 student.php:class Student{ public $id; public $name; p
2017-12-29 16:52:08
6616
转载 学习PHP反射(1)—— 入门
今天开始学习php 的反射,许多人可能还没有听说过反射这个概念,简单点说反射的就是让你拥有剖析类、函数的能力。有的同学可能会问我剖析类有什么用,我为什么要学反射,我只能说不学反射并不会对你实现业务有任何影响,但是如果你想写出结构优雅的程序,想写出维护性和扩展性都很高的程序,学习反射是必不可少的。PHP 内置了一组反射类来实现类的反射,常用的有:ReflectionCla
2017-12-29 16:50:40
1567
转载 call_user_func 反射 new区别
使用call_user_func函数,通过传入字符串函数,可以调用自定义函数,并且支持引用。 1.mixed call_user_func ( callable callback[,mixedparameter [, mixed $… ]] )调用第一个参数提供的自定义函数,后面的参数为自定义函数的参数,返回自定义函数的结果function say($word) { ech
2017-12-29 16:48:45
1644
原创 composer 自动载入的简单理解
psr4 :结合命名空间自动加载(前提是要加载的类指定了命名空间,即有namespace,否则找不到)"APP\\":"application/"表示APP命名空间对应application目录(只针对类文件,类文件必须包含有命名空间,后缀必须是.php)classmap:自动加载指定文件(前提是后缀是.php或.inc) 或 自动加载指定文件夹里面所有.ph
2017-12-17 22:58:31
1606
转载 composer 自动载入的四种方式
Composer 是PHP的一个包依赖管理工具,类似Ruby中的RubyGems或者Node中的NPM,它并非官方,但现在已经非常流行。此文并不介绍如何使用Composer,而是关注于它的autoload的内容吧。对于第三方包的自动加载,Composer提供了四种方式的支持,分别是 PSR-0和PSR-4的自动加载,生成class-map,和直接包含files的方式。首先引
2017-12-16 15:25:26
5155
原创 php 命名空间 和 自动加载机制 的简单理解
namespace 只是创建并命名一个空间use 只是导入一个命名空间namespace 、use 和加载文件没有关联,和require、require_once、include、include_once没有关联namespace 是为了 use ,use 是为了 自动加载机制;而namespace命名必须符合PSR4规范,即命名空间和文件路径要相对应
2017-12-12 19:20:38
3098
原创 php几点PSR基本代码规范
小驼峰法:第一个单词首字母小写,除第一个单词之外,其他单词首字母大写。(小写开头的驼峰命名规范)大驼峰法:相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。(大写开头的驼峰命名规范)类的命名必须遵循大写开头的驼峰命名规范;类中的常量所有字母都必须大写,单词间用下划线分隔;方法命名必须遵循小写开头的驼峰命名规范;变量(属性)可以采用小驼峰法或大驼
2017-12-11 22:32:00
1548
转载 PHP 命名空间与自动加载机制介绍
include 和 require 是PHP中引入文件的两个基本方法。在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 require 堆积。这样的代码既不优雅,执行效率也很低,而且维护起来也相当困难。为了解决这个问题,部分框架会给出一个引入文件的配置清单,在对象初始化的时候把需要的文件引入。但这只是让代码变得更简洁了
2017-12-11 17:02:27
2155
转载 PHP自动加载功能原理解析
这篇文章是对PHP自动加载功能的一个总结,内容涉及PHP的自动加载功能、PHP的命名空间、PHP的PSR0与PSR4标准等内容。一、PHP自动加载功能PHP自动加载功能的由来在PHP开发过程中,如果希望从外部引入一个 class,通常会使用 include 和 require 方法,去把定义这个 class 的文件包含进来。这个在小规模开发的时候,没什么大问题。但在大型
2017-12-07 01:29:06
1713
原创 windows上phpstudy配置memcache
总的来说,分两步:同时安装memcached软件服务和安装php_memcache扩展一、安装memcached软件服务1、下载服务端memcached软件32bit:memcached-win32-1.4.4-14.zip(单击直接下载)64bit: memcached-win64-1.4.4-14.zip(单击直接下载)下载解压,随便将文件夹放在什么位置,比如:D:
2017-11-21 02:50:23
7769
转载 PHP mcrypt加密扩展使用总结
在开发中,很多时候我们在前后端交互中需要对一些敏感数据进行一定的加密。PHP中有提供了mcrypt的这样一个加密扩展实现对数据的加密解密。一、mcrypt扩展的安装 在低版本的PHP中需要在配置文件php.ini中显式添加对扩展的引用,同时要保证扩展引用目录中有相应的扩展文件;在高版本的PHP中,Windows下似乎默认开启了mcrypt的扩展,既不需要在配置文件php.ini中做配置,
2017-11-18 16:00:48
2663
七周七语言:理解多种编程范型.[美]Bruce A.Tate(超清中文版带详细书签pdf)
2018-12-10
高性能MySQL_第3版_超清中文带目录版[PDF]
2018-08-01
[UNIX环境高级编程_第3版].W.Richard.Stevens.超清中文带目录完整版[PDF]
2018-08-01
[UNIX环境高级编程_第二版].(UNIX环境高级编程).W.Richard.Stevens.超清扫描版.中文版带目录.[PDF]
2018-07-30
EA详细使用教程
2015-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人