撤销 git commit操作 一、已经commit 但是还没有push1、仅仅撤销commit ,保留addgit reset --soft HEAD^ //当我们执行 --soft 命令后,可以看到控制台无任何输出。它只是把HEAD指向了上一个版本。2、仅仅撤销commit 并且也撤销add。(也就是删除工作空间的改动代码)git reset --hard HEAD^3、适用于在不小心在 master 分支上提交了代码,而实际想要在 aa 分支上提交代码的场景:// 新检出一个新分支,但是仍在mast
git不同颜色展示文件修改状态 git 系统默认的git diff/status 文件修改状态是不会用不同颜色区分的;一、当前项目配置git config color.ui false //将之前的设置修改未默认值git config color.ui true //设置不同颜色显示文件的修改状态二、全局配置git config --global color.ui falsegit config --global color.ui true...
【排序】冒泡排序和快速排序 php实现快速排序和冒泡排序快速排序实现思路:把第一个元素作为标记,依次判断后续的值,如果小于它则放在左边,如果大于它则放右边,同理把左右两部分看成一个整体一直递归,最后再数组拼接起来它的最优时间复杂度为O(nlogn)【以标记元素为中心,正好每次左右都能均匀分配】,最糟糕时间复杂度为O(n^2)【标记元素每次是最大或最小值,使所有数都划分到一边】function quickSort($arr){ $count = count($arr); //统计出数组的长度 if
inpu只能输入数字 方法一:input框仅可输入数字<input type="text" name="{{$field['field']}}" Oninput="value=value.replace(/[^\d]/g,'')" class="layui-input" value="" title="排序仅为数字"/>方法二:通过改变input类型<input type="number" name="{{$field['field']}}" class="layui-input" value.
深入学习Composer原理(四) 本系列第四篇文章,也是最后一篇首先,我们先看看Composer的源码从哪里看起。当然,请您先准备好源码。composer init或者直接install之后,自动生成了一个vendor目录,这时您需要在文件中手动的require这个vendor目录下的autoload.php文件,其实这个文件又载入了vendor/composer/autoload_real.php。在autoload...
深入学习Composer原理(三) 本系列第三篇文章,一起了解下PSR规范中的PSR4和PSR0规范首先恭喜大家,包括我自己,坚持到了现在。这篇文章之后,Composer的基础原理就清晰明了咯。也就是说,Composer所利用的正是spl_autoload_register()和PSR4规范,然后通过线上服务器存储包,来实现包管理的功能。spl_autoload_register()的作用我们已经清楚了,主要就是动态加载我们所需...
深入学习Composer原理(二) 本系列的第二篇文章,这次我们聊聊:spl_autoload_register()函数PHP的SPL库作为扩展库,已经于5.3.0版本后默认保持开启,成为PHP的一组强大的核心扩展库。大家有时间可以多研究研究SPL里面的方法功能。而且,SPL中包含很多类库哟,在设计模式的系列文章中,我们也会再次见到他们的身影!这回我们建立一个文件,叫做spl_autoload_register.php,然后...
深入学习Composer原理(一) Composer作为PHP的包管理工具,为PHPer们提供了丰富的类库,并且让PHP重焕新生,避免被时代淘汰的悲剧。可以说,Composer和PHP7是现在PHP开发者的标配,如果你还没用过Composer或者在PHP7的环境下工作,那么还真是有点落伍了哦!这次的系列文章将一步步的解析Composer原理,不会去讲解Composer的命令或者如何使用,这方面的内容您可以稳步Composer中文...
传引用与传值的区别 简单的来说:传值:当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量; 变量默认是传值;传引用:当一个变量的值赋予另外一个变量时,改动新的变量将影响原始的变量;使用引用赋值,简单的就是将&符号加到将要赋值的 变量前;相当于别名; 对象默认是传引用;使用场景:对于较...
PHP实现兼容unicode文字的字符串大小写转换 mb_strtolower() - 使字符串小写,以unicode为基础mb_strtoupper() - 使字符串大写,以unicode为基础strtolower() - 将字符串转化为小写strtoupper() - 将字符串转化为大写ucfirst() - 将字符串的首字母转换为大写ucwords() - 将字符串中每个单词的首字母转换为大写...
合并数组的几种方式 一、 + 规则:当两个数组的键名是数字键名或者字符串键名可以直接 +,$c = $a + $b,在$a后追加($b在$a中不存在的键名)键名和值。不覆盖,只是追加不存在的键名和对应的值。 键名不重新索引。 无论是全部数字键名还是混合,都只是追加键名和值,如果键名相同则不进行追加,即把最先出现的值作为最终结果返回。二、array_merge()将一个或多个数组的单元合并...
框架的优缺点 一、yaf框架的优缺点 各有特点,不能直观地分好坏。Yaf是用PHP扩展的形式写的一个PHP框架,也就是以C语言的编写,性能上要比PHP代码写的框架要快一个数量级。在执行效率方面,这个框架很可能会是最高的。 因为它的作者就是惠新宸,框架作者本身对PHP底层执行非常了解。Laravel,我了解不多,但是,它以优雅简洁著称。如果业务性能压力大,需要耗费很多机器,推荐采用前者。如果项目更...
Redis的那些最常见面试问题 1.什么是redis?Redis 是一个基于内存的高性能key-value数据库。2.Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-V...
cookie禁用怎么存储session id get方法的URL重写的机制:把session id 添加到URL信息中 post表单隐藏字段:就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器...
session原理及实现session共享 最近,在工作中遇到一个问题,问题描述:一个用户在登录成功以后会把用户信息存储在session当中,这时session所在服务器为server1,那么用户在session失效之前如果再次使用app,那么可能会被路由到server2,这时问题来了,server没有该用户的session,所以需要用户重新登录,这时的用户体验会非常不好,所以我们想如何实现多台server之间共享session,让用户状...
linux下怎么网络抓包 Linux下面如何用tcpdump抓包很多时候我们的系统部署在Linux系统上面,在一些情况下定位问题就需要查看各个系统之间发送数据报文是否正常,下面我就简单讲解一下如何使用tcpdump抓包tcpdump是Linux下面的一个开源的抓包工具,和Windows下面的wireshark抓包工具一样, 支持抓取指定网口、指定目的地址、指定源地址、指定端口、指定协议的数据。1、安装tcpdu...
linux怎么查看端口被哪个进程被暂用 一、lsof -i 用以显示符合条件的进程情况,lsof(list open files)是一个列出当前系统打开文件的工具。以root用户来执行lsof -i命令lsof -i:端口号 用于查看某一端口的占用情况二、netstat -tunlp用于显示tcp,udp的端口和进程等相关情况,netstat -tunlp|grep 端口号...
Linux查看大文件日志 Linux 查看大日志文件1、使用 less 命令less filename但是使用上述命令的坏处是,默认打开的位置在第一行,并且当切换到实时滚动模式(按 F ,实现效果类似 tail -f 效果 )或者想要滚动到最底部的时候(按 G ),会卡在计算行数一段时间。如果卡的时间比较长的话,可以直接按 Ctrl + c ,取消计算行数。我更推荐打开文件的时候使用 -n :不计算行号(打开...