自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 Web of Science批量导出

Web of Science批量导出检索结果

2023-09-03 13:52:57 1081 5

原创 git终端操作结果高亮

买了一台云服务器,系统是centos的,通过ssh连接,装了git后发现不管是git status还是git diff显示的结果都是黑白的,不好看到是次要的,关键是无法快速获取需要的信息,google显示以下操作,特此记录diff高亮:$ git config --global color.diff autostatus高亮$ git config --global color.stat...

2019-08-06 14:16:02 1671

原创 PHP预定义接口——Iterator

Iterator(迭代器)接口可在内部迭代自己的外部迭代器或类的接口。接口摘要Iterator extends Traversable { /* 方法 */ abstract public current ( void ) : mixed abstract public key ( void ) : scalar abstract public next ( void ) : v...

2019-07-24 19:21:06 272

原创 PHP标准库 (SPL)——Countable

类实现 Countable 可被用于 count() 函数.接口摘要Countable {/* 方法 */abstract public count ( void ) : int}当一个类实现了Countable接口,实现了接口中的count方法,即可直接使用count(Object)的到count方法返回的值。例:class MyCount { private $num...

2019-07-24 18:55:49 266

原创 什么时候该用static(private static)关键字

在面向对象编程中,我们知道private为修饰私有方法或属性,而static用于修饰可供外界无需实例化直接使用的方法或属性,如工具类工具属性,那private和static是不是就很矛盾了呢?因为你是无法通过调用static的方法调用static修饰的方法(属性)的。static:静态修饰符,被static修饰的变量和方法类似于全局变量和全局方法,可以在不创建对象时调用,当然也可以在创建对象之后...

2019-05-07 16:11:32 6804 2

转载 Nginx配置负载均衡与反向代理

一、负载均衡1、什么是负载均衡随着请求数的快速增长,单服务器已经无法承担大量用户的并发访问,这个时候,就需要建立服务器集群,来让多台服务器协同工作,提高整体项目的吞吐量和QPS。假设一台设备资源占有率已经饱和,而另一台服务器缺只有零星几个请求处理,这显然是不合理的。我们期望多台服务器需要平均承担客户端发来的请求,使每台机器都充分利用。这时,我们就需要用到一种技术,叫做负载均衡。负载均衡是多台...

2019-04-14 21:11:53 367

转载 PHP消息队列

1.队列的概念:是队列结构的中间件消息放入后不需要立即处理由订阅者/消费者按顺序处理2.队列原理:也是解耦的原理:业务系统和队列处理系统没有关系一个写(业务系统),一个读(队列管理系统)。写的只管往队列里写,别的不用操心,读的能不能读完和写的也没有关系同样,读的只管从队列里往外读,来活儿就干,没活儿歇着3.应用场景:冗余:持久化的存储在队列中,后续由订单处理程...

2019-04-12 18:27:42 404

原创 利用composer给自己的类库加上自动加载功能

最近在搞api架构设计,要与之前的代码隔离开来,之前的代码种种原因没有不是用的类似的自动加载,用了composer发现真的做的非常方便,自动加载功能及其好用,所以在想能不能直接利用composer的自动加载来为自己写的类库提供自动加载功能!百度谷歌StackOverflow,该有的答案总是会有的!假设你已经会composer的基本使用。方法:在composer.json中添加类似代码: ...

2019-04-11 15:42:17 1955

原创 npm install -g 全局安装总是出现permission权限问题的解决方案

问题:想用npm全局安装一个包,出现类似如下一个错误:npm ERR! Please try running this command again as root/Administrator.解决方案:1:使用管理员命令,如ubuntu的sudo (不推荐)2:将npm的global package安装路径放入到当前用户的home目录下,避免使用sudo,一样可以安装global的np...

2019-04-08 13:40:45 1989

原创 解决使用ajaxfileuplod后$.change()只执行一次的问题

问题:当使用jquery ajaxfileupload插件之后会出现如下事件只执行一次的'bug'$('input[type="file"]').click(function() { ...})原因:这并不是一个bug,你以为change事件失效了,其实并没有,而是当ajaxfileupload插件在进行操作之后会用一个新的input替换原来的input,之前change事件绑定的元...

2019-03-26 13:31:57 518

原创 git通过命令忽略指定文件

项目中一些需要在本地修改,又不能写进.gitignore中,就需要通过命令了百度搜索了一下,几乎前篇一律的修改.gitignore。忽略$ git update-index --assume-unchanged /path/to/file取消忽略$ git update-index --no-assume-unchanged /path/to/file...

2019-03-19 15:49:59 11761 2

原创 Linux错误:Failed to load module "canberra-gtk-module"错误的解决方案

问题:这几天一直遇到一个奇怪的现象:刚装的虚拟机装上phpstorm后,重启就会出现文件丢失的现象,经过几次反复尝试后终于发现一丝端倪:终端出现这样的错误:Failed to load module "canberra-gtk-module"解决方法:安装libcanberra-gtk-module$ sudo apt install -y libcanberra-gtk-module...

2019-03-18 21:54:27 2335 1

原创 ruby安装mysql2 的gem报错

错误详情:An error occurred while installing mysql2 (0.3.20), and Bundler cannot continue.Make sure that `gem install mysql2 -v '0.3.20' --source 'https://gems.ruby-china.com/'` succeeds before bundling....

2019-03-15 21:18:25 1758

转载 乐观锁与悲观锁——解决并发问题

文章目录1. 为什么需要锁(并发控制)?2. 并发控制机制3. 乐观锁应用乐观锁介绍:使用举例:以MySQL InnoDB为例4. 悲观锁应用5. 结论1. 为什么需要锁(并发控制)?在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2...

2019-03-03 17:28:21 3314

转载 详解第一范式、第二范式、第三范式、BCNF范式

文章目录第一范式定义以及分析:问题研究:第二范式必备知识点函数依赖:码:非主属性 :定义分析:解决办法:问题研究:第三范式:定义:分析:问题研究:BCNF范式分析问题研究小结:第一范式定义以及分析:首先是第一范式(1NF)。符合1NF的关系(你可以理解为数据表。“关系模式”和“关系”的区别,类似于面向对象程序设计中”类“与”对象“的区别。”关系“是”关系模式“的一个实例,你可以把”关系”理解...

2019-03-02 16:08:45 279333 92

转载 使用Redis保存PHP Session

文章目录1 环境2 配置PHP2.1 修改php.ini2.2 修改php-fpm.conf2.3 PHP代码3 测试PHP默认就支持保存session到redis,不需任何额外代码。Redis保存session用的命令是setex,用redis-cli monitor实时监测可以检测到。setex命令的语法:setex(key, time, value)其中,key是键值,time是...

2019-02-27 18:04:36 387

原创 inner join、left join、rigint join 的区别

文章目录1. 表1.1 学生表user1.2 成绩表grade2. JOIN2.1 inner join2.1.1 sql:2.1.2 结果2.1.3 结论2.2 left join2.2.1 sql2.2.2结果2.2.3 结论2.3 right join2.3.1 sql2.3.2 结果2.2.3 结论1. 表1.1 学生表useridname1小赵2小钱...

2019-02-27 17:36:46 753

原创 编译安装LAMP之安装mysql5.5.62

新建用户及用户组# 新建用户$ groupadd mysql # 新建用户组$ useradd mysql -s /sbin/nologin -M -g mysql# 建立安装目录:$ mkdir /usr/local/mysql/data/mysql -pv $ chown -R mysql. /usr/local/mysql/data/mysql除常规编译工具还需要cmake...

2019-02-27 09:23:39 578

原创 cgi、fastcgi、php-fpm、php-cgi

文章目录1. 什么是cgi生命周期2. 什么是fastcgi生命周期3. 什么是php-fpmphp-fpm的平滑重启4. php-fpm与php-cgi1. 什么是cgicgi:common gateway interface(通用网关接口)CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。并不是php独有的web server(比如说nginx)...

2019-02-25 19:28:16 299

原创 编译安装LAMP之安装apache2

文章目录安装说明1. 试安装apache22. 安装依赖-APR3. 安装依赖-APR-util4. 安装依赖-pcre5. 安装apache安装说明这里我选择版本号为2.4.16的apacheapache2所有版本下载站点请确保系统已经安装了编译工具$ sudo apt-get install g++ gcc automake autoconf libtool make1. 试安装...

2019-02-20 15:32:30 298

原创 使用ajax优雅快捷地提交表单

在使用ajax提交表单的时候很多人会采用下面的方式:<input type='text' name='name'><input type='text' name='age'><input type="button" onclick='submit_form()' value="提交">...<script>submit_form() {...

2019-02-19 15:07:18 287

原创 php获取客户端ip地址

在平时的复制粘贴中,我们经常会有获取客户端ip地址的需求,然而,客户们也不总都是老实人,如何才能获取到那些不老实的IP呢,下面整理了各种情况下获取客户端IP的方法:客户端REMOTE_ADDRHTTP_X_FORWARDED_FOR说明没有使用代理服务器代理服务器 IP没数值或不显示使用透明代理服务器最后一个代理服务器 IP客户端真实 IP (经过多个代理...

2019-02-19 11:03:21 199

转载 深入理解OAuth2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。一、应用场景为了理解OAuth的适用场合,让我举一个假设的例子。有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"读取自己...

2019-02-15 17:03:02 216

原创 Phpstorm左侧只展示想要的文件夹

在一个项目中难免会有一些很庞大但是又不会被查看及编辑的文件夹,然而又不能删除它,于是经常会看到phpstorm处于indexing状态,内存占用极大,不美观也不方便,可谓是费时费力不讨好。得像个法子让它简洁一点,只展示我经常编辑的那几个文件夹!方法来了:如上所示,先选择你想要操作的文件夹,然后点击包含(递归包含:针对文件夹)或是排除(递归排除:针对文件夹),也可以直接用相应的正则表达...

2019-02-15 16:13:24 923

原创 PHP中abstract(抽象)、final(最终)和static(静态)详解

abstract(抽象)PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护...

2019-02-14 19:15:14 1334 1

原创 php中pecl、pear和composer三者的区别

1.PECLPHP Extension Community Library(PHP社区扩展库)管理底层的php扩展,用c或者c++编写外部模块然后加载至php中,如redis,xdebug等模块。2.PEARPHP Extension and Application Repository(PHP扩展及应用仓库)管理项目环境扩展,如一段php写的类或函数。3.composerPHP 的...

2019-02-13 16:05:18 722

转载 关于命名空间

1. PHP中的命名空间是什么?官方解释在此: 命名空间概述命名空间用一句话说,就是:把 类、函数、变量 等放到逻辑子文件夹中去,以避免命名冲突。注:命名空间跟实际代码文件在文件系统中的路径没有任何关系,如果你感到迷茫,可以看看本文最后一节。2. 被隐藏的第一个 \在每个 PHP 文件的最开始定义命名空间:<?php namespace TinyLara\TinyRoute;...

2019-02-13 14:14:29 288

转载 三分钟学会composer

当系统有不同的web应用,但是需要共用很多代码怎么办当系统需要一个扩展功能而这个扩展功能网上刚好有人提供了怎么用PHP代码如何升级,降级,回滚如何分配任务,如何让多个工程师一起进行开发任务我在2011年接触PHP,那时候刚发布V5.3.5。从语言层面,我不认为PHP有过于明显的缺陷,我们在有丰富面向web的函数库的基础上,还有了类、SPL、匿名函数、etc。这些特性(一点都不“特”好吧)足...

2019-02-13 11:48:24 391

转载 RESTful API 设计规范

RESTful API 设计规范Table of ContentsRESTful API 设计规范关于「能愿动词」的使用ProtocolAPI Root URLVersioning在 URL 中嵌入版本编号通过媒体类型来指定版本信息EndpointsHTTP 动词FilteringAuthenticationResponse200 ok201 Created...

2019-01-20 19:57:42 256

原创 PHP函数require、require_once以及include、include_once的区别

在程序中引入文件时经常会用到require,include这些函数,但是他们有什么区别以及各自的应用场景是什么呢?国际惯例,先看手册:

2019-01-14 11:18:21 371

原创 PHP页面静态化——纯静态与伪静态

为什么要静态化页面?       当用户访问一个不经常更新的Web页面,PHP接到指示对php脚本文件进行解析,从数据库查询到该页面所需要的数据,然后对页面模板进行渲染,最后将一个成品页面展示给用户。单次请求对于服务器来说非常简单,处理起来非常快,但是如果同时有成千上万各用户请求该页面呢?这无疑是对资源的一种浪费,这就是我们要做静态的目的。  ...

2018-12-19 22:40:07 653

转载 php设计模式之单例模式

单例模式,正如其名,允许我们创建一个而且只能创建一个对象的类。这在整个系统的协同工作中非常有用,特别明确了只需一个类对象的时候。那么,为什么要实现这么奇怪的类,只实例化一次?在很多场景下会用到,如:配置类、Session类、Database类、Cache类、File类等等。这些只需要实例化一次,就可以在应用全局中使用。本文我们以数据库类为例。1 问题如果没有使用单例模式,会有什么样的...

2018-12-15 12:53:04 170

原创 好用的前端插件合集(持续更新)

1.pdf.js功能:在线预览pdf文件简介:构建好插件后,在web网页上新建一个ifrme,按要求配置src即可在线预览站点上的pdf。Github:https://github.com/mozilla/pdf.js2.ckplayer功能:网页播放视频简介:官网有非常详细的使用手册,功能强大gitee:https://gitee.com/niandeng/ckplayerX/3...

2018-12-07 23:04:50 1076

转载 JS中var、let、const定义的变量有何异同

1. let添加了块级作用域我们知道,JavaScript是没有块级作用域的,如果在块内使用var声明一个变量,它在代码块外面仍旧是可见的:if (true) { var foo = 3;}console.log(foo); // 3for (var i = 0; i < 9; i++) { var j = i;}console.log(i); ...

2018-12-02 21:20:14 219

转载 密码加盐

盐(Salt)在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”。以上这句话是维基百科上对于 Salt 的定义,但是仅凭这句话还是很难理解什么叫 Salt,以及它究竟起到什么作用。第一代密码早期的软件系统或者互联网应用,数据库中设计用户表的时候,大致是这样的结构:mysql> desc User;+--...

2018-12-02 21:02:08 240

原创 使用PHP的json_decde遇到的坑

(1)今天在一个页面上添加一个ajax查询订单号是否存在的功能,操蛋的是在原页面上引用了一个js文件,并且该文件里面封装了一个原生的ajax方法,影响就是我是用jquery的ajax方法会被该方法拦截,然后返回失败结果,由于本人并非专业前端,所以并没有去刨根问底,只好按照框架封装的方法去发ajax请求了。(2)使用框架封装的方法后确实是可以用了,但是操蛋的是有一个操蛋的结果出来了,该aja...

2018-11-26 10:22:25 617 2

原创 PHP中isset()、is_null()、empty()的比较

在项目中经常会看到在判断中用is_set(),is_null(),empty()作为判断校验条件的,但是你知道在什么情况下用哪一种最合适吗?今天来做一下归纳总结!首先不管三七二十一,翻一翻官方手册才是王道 ‘u’ 。issetbool isset ( mixed $var [, mixed $... ] )检测变量是否已设置并且非 NULL如果已经使用 unset() 释放了一个变...

2018-11-12 11:23:29 248

原创 PHP类的自动加载与命名空间

       作为一名合格的程序员,必定会有一个从面向过程编程到面向对象编程的转化过程,在这个过程中诸如命名空间,类,继承,接口,类自动加载等等都是需要我们去掌握的,之前对这些概念都不是很熟悉,只是能够基础地使用,在这里系统的记录一下关于命名空间与类的自动加载知识。类的自动加载什么是自动加载类?&nb

2018-11-09 16:46:52 666

转载 php递归函数及简单实例讲解

递归函数即自调用函数,在函数体内部直接或者间接的自己调用自己,即函数的嵌套调用是函数本身。通常在此类型的函数提之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定的条件下终止函数的递归调用动作,把目前流程的主控权交回到上一层函数来执行。以此,当某个执行递归调用的函数没有附加条件判断叙述时,可能会造成无限循环的错误情形。函数递归调用最大的好处在于可以精简程序中的复杂重复调用程序...

2018-11-05 18:25:09 653

原创 href与src的区别

       不管你是前段工程师还是后端工程师,对HTML中的href与src肯定都不会感到陌生,但是你知道它们之间的区别吗?哪些标签应该用href又有哪些标签应该用src呢?hrefhref 全称:Hypertext Reference(超文本引用)。常用于link, a标签中,例如:<a href="http://www.baidu.com...

2018-11-05 17:07:36 973 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除