摘要:{ // 决定 linter 是在保存时还是输入时运行。 "php.validate.run": "onSave", // 启用/禁用内置的 PHP 验证。 "php.validate.enable": true, // 启用/禁用 JavaScript 验证。 "javascript.valida 阅读全文
posted @ 2020-05-11 10:15 王小默 阅读(2939) 评论(1) 推荐(0) 编辑
摘要:ob_start(); ob_implicit_flush(0); $HTTP_ACCEPT_ENCODING = $_SERVER['HTTP_ACCEPT_ENCODING']; function CheckCanGzip() { global $HTTP_ACCEPT_ENCODING; if 阅读全文
posted @ 2020-03-31 18:45 王小默 阅读(1402) 评论(0) 推荐(0) 编辑
摘要:一、nginx的反向代理及多台虚拟机负载均衡的实现 主机负载均衡服务器:192.168.232.132 的nginx.conf 配置如下 http { include mime.types; default_type application/octet-stream; sendfile on; ke 阅读全文
posted @ 2020-03-27 18:10 王小默 阅读(243) 评论(0) 推荐(0) 编辑
摘要:查看openssl的版本 openssl version OpenSSL 0.9.8zh 14 Jan 2016 下载 到官网下载合适的openssl版本 https://www.openssl.org/source/ wget https://www.openssl.org/source/open 阅读全文
posted @ 2020-03-27 10:13 王小默 阅读(2614) 评论(0) 推荐(0) 编辑
摘要:wget https://www.php.net/distributions/php-7.4.4.tar.gz tar -zxvf php-7.4.4.tar.gz cd php-7.4.4 ./configure --prefix=/home/php --with-config-file-path 阅读全文
posted @ 2020-03-26 23:38 王小默 阅读(1344) 评论(0) 推荐(0) 编辑
摘要:安装PHP7.4找不到 No package 'oniguruma' found 一、oniguruma是什么? oniguruma是一个处理正则表达式的库,我们之所以需要安装它, 是因为在安装php7.4的过程中,mbstring的正则表达式处理功能对这个包有依赖性, 所以我们要先安装这个库 二、 阅读全文
posted @ 2020-03-24 18:13 王小默 阅读(8876) 评论(1) 推荐(0) 编辑
摘要:1、在使用之前,先类掌握3个东西,明白它们是用来干什么的: npm: nodejs 下的包管理器。 webpack: 它主要用途是通过CommonJS 的语法把所有浏览器端需要发布的静态资源作相应的准备,比如资源的合并和打包。 vue-cli: 用户生成Vue工程模板。(帮你快速开始一个vue的项目 阅读全文
posted @ 2020-03-03 10:02 王小默 阅读(1849) 评论(0) 推荐(0) 编辑
摘要:1.安装webpack 阅读全文
posted @ 2019-06-18 14:59 王小默 阅读(151) 评论(0) 推荐(0) 编辑
摘要:执行下面命令,并按照提示选择“Asia/Shanghai”: 正常执行结果为: 阅读全文
posted @ 2019-06-10 09:56 王小默 阅读(387) 评论(0) 推荐(0) 编辑
摘要:Yarn是Facebook最近发布的一款依赖包安装工具。Yarn是一个新的快速安全可信赖的可以替代NPM的依赖管理工具 快速安装 MacOS 在Mac上安装比较方便,使用初始化脚本即可 curl -o- -L https://yarnpkg.com/install.sh | bash curl -o 阅读全文
posted @ 2019-06-09 15:43 王小默 阅读(1396) 评论(0) 推荐(0) 编辑
摘要:https://ftp.mozilla.org/pub/firefox/releases/ 1.sudo gedit /usr/share/applications/firefox.desktop 2.设置桌面快捷键 Exec=执行文件目录地址 Icon=图标地址 [Desktop Entry]Na 阅读全文
posted @ 2019-06-08 13:59 王小默 阅读(1109) 评论(0) 推荐(0) 编辑
摘要:以上出了 bind 方法后面多了个 () 外 ,结果返回都一致! 由此得出结论,bind 返回的是一个新的函数,你必须调用它才会被执行。 微妙的差距! 从上面四个结果不难看出: call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数差别就来了: call 阅读全文
posted @ 2019-06-07 15:39 王小默 阅读(178) 评论(0) 推荐(0) 编辑
摘要:Ubuntu下手动安装vscode1.下载vscodewget https://vscode.cdn.azure.cn/stable/553cfb2c2205db5f15f3ee8395bbd5cf066d357d/code_1.35.0-1559611369_amd64.deb2.下载好后开始安装 阅读全文
posted @ 2019-06-07 15:05 王小默 阅读(3711) 评论(0) 推荐(0) 编辑
摘要:一. 确保成功安装了VMware Tools 二. 使用如下命令 1.apt-get install open-vm-tools 2.vmhgfs-fuse .host:/ /mnt/hgfs (超级用户下挂载) (注意:.host前面有一个空格,host:/后面有两个空格) 3.关闭终端,重新打开 阅读全文
posted @ 2019-06-05 20:30 王小默 阅读(2280) 评论(0) 推荐(0) 编辑
摘要:1、设置共享权限 1、设置共享权限 2、安装VMware tools 点击虚拟机 点击安装 VMware tools 将/run/media/zhaojq/VMware\ Tools 目录下的VMwareTools-9.6.2-1688356.tar.gz拷贝到家目录下 解压后生成vmware-to 阅读全文
posted @ 2019-06-04 13:18 王小默 阅读(7514) 评论(0) 推荐(0) 编辑
摘要:1.JavaScript转换包括:强制转换和基本转换 如: var str = 'A',num=10,nu=null,t=true,und=undefined,x; //注意:定义的x未被初始化;默认是undefined 强制转换: Number(str);//输出:NaN 因为str不是数字 Nu 阅读全文
posted @ 2019-06-01 10:37 王小默 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1.ECMAScript3中定义了变量可分为原始值和引用值。 原始值:是保存在栈(stack)中的简单数据段;也就是说他们的值是直接存储在变量访问的位置。 引用值:是保存在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),该指针地址->指向存储对象的内存处。 使用typeo 阅读全文
posted @ 2019-05-31 18:10 王小默 阅读(1198) 评论(0) 推荐(0) 编辑
摘要:观察者模式 1:观察者模式(Observer),当一个对象状态发生变化时,依赖它的对象全部会收到通知,并自动更新。 2:场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理的逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻 阅读全文
posted @ 2019-05-26 22:25 王小默 阅读(255) 评论(0) 推荐(0) 编辑
摘要:适配器模式 将各种截然不同的函数接口封装成统一的API。 PHP中的数据库操作有MySQL,MySQLi,PDO三种,可以用适配器模式统一成一致,使不同的数据库操作,统一成一样的API。类似的场景还有cache适配器,可以将memcache,redis,file,apc等不同的缓存函数,统一成一致。 阅读全文
posted @ 2019-05-26 22:11 王小默 阅读(191) 评论(0) 推荐(0) 编辑
摘要:1.注册模式: 注册模式,解决全局共享和交换对象。已经创建好的对象,挂在到某个全局可以使用的数组上,在需要使用的时候,直接从该数组上获取即可。将对象注册到全局的树上。任何地方直接去访问。 阅读全文
posted @ 2019-05-26 21:13 王小默 阅读(556) 评论(0) 推荐(0) 编辑
摘要:单例模式 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库操作、显卡的驱动程序常被设计成单例。 单例模式分3种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下3个特点: 1.只 阅读全文
posted @ 2019-05-26 20:53 王小默 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1.策略模式:是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。 实现步骤: 1.定义抽象类(定义所有子类必须要实现的共同抽象方法) 2.定义具体策略类(具体实现父类的共同方法) 3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法) 目的;根据不同渠道实现不通 阅读全文
posted @ 2019-05-26 20:36 王小默 阅读(155) 评论(0) 推荐(0) 编辑
摘要:1.创建型模式这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。 这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(S 阅读全文
posted @ 2019-05-26 20:10 王小默 阅读(1435) 评论(0) 推荐(0) 编辑
摘要:在 PHP 5.3 之前,__autoload 函数抛出的异常不能被 catch 语句块捕获并会导致一个致命错误(Fatal Error)。 尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_register() 函数。 spl_autoload_re 阅读全文
posted @ 2019-05-26 16:36 王小默 阅读(935) 评论(0) 推荐(0) 编辑
摘要:1. __construct 具有构造函数的类会在每次创建新对象时先调用此方法;初始化工作执行。2. __desstruct 对象的所有引用都被删除或者当对象被显式销毁时执行。3.__call()在对象中调用一个不可访问方法时,__call() 会被调用。4.__callStatic()在静态上下文 阅读全文
posted @ 2019-05-26 15:54 王小默 阅读(5091) 评论(0) 推荐(0) 编辑
摘要:1.public定义的类或方法;任何类的实例都可以访问 2.private定义的属性和方法;只能该类内部使用;如果子类要访问父类的private属性;必须实现__set()和__get()方法; 3.protected定义的属性和方法;该本类和子类或者父类内部使用。实例对象不可以访问; 输出: 阅读全文
posted @ 2019-05-26 15:14 王小默 阅读(131) 评论(0) 推荐(0) 编辑
摘要:1.抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式是我们最常用的实例化对象模式,是用工厂方法代替new操作的一种模式。 使用工厂模式的好处是 阅读全文
posted @ 2019-05-25 23:56 王小默 阅读(158) 评论(0) 推荐(0) 编辑
摘要:cookie 和session 的区别: 1、cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session。 3、session会在一定时间内保存在服务器上。当访问增多 阅读全文
posted @ 2019-05-25 22:57 王小默 阅读(1240) 评论(0) 推荐(0) 编辑
摘要:1.where条件左多又少原则 原则,多数数据库都是从左到右的顺序处理条件,把能过滤更多数据的条件放在前面,过滤少的条件放后面SQL1: select * from employee where salary >1000 --条件1,过滤的数据较少and dept_id='01' --条件2,过滤的 阅读全文
posted @ 2019-05-22 23:06 王小默 阅读(97) 评论(0) 推荐(0) 编辑
摘要:1.use的用法 2.序列号函数unserialize的新增了过滤功能 3.通过define定义常量数组 define("GREETING","Hello you! How are you today?",TRUE); echo constant("greeting"); //返回常量的值 4.三目 阅读全文
posted @ 2019-05-22 22:00 王小默 阅读(347) 评论(0) 推荐(0) 编辑
摘要:索引是查询优化最主要的方式; 查询方式: 一种是:全表扫描; 一种是:利用数据表上建立的所以进行扫描。 如:对表中name字段建立索引;则按照表中name字段进行索引排序,并为其建立指向数据表中记录所在位置的“指针”。 Mysql索引根据用途分为: 1.普通索引:列值可以取空值或重复值。创建使用关键 阅读全文
posted @ 2019-05-22 20:08 王小默 阅读(8612) 评论(0) 推荐(0) 编辑
摘要:近半年来努力付出,项目终于要正式结项了,团队4人经历了很多困难,加班加点,最终完成了!剩下的时间将总结一下在该项目中用到知识和遇到问题。今天就从swoole说起!项目中实现异步大文件传输的功能,在服务端使用了swoole,可以高效方便的实现,很多的项目其实也在用到swoole,突然间觉得swoole 阅读全文
posted @ 2019-05-20 22:26 王小默 阅读(673) 评论(0) 推荐(0) 编辑
摘要:TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数 阅读全文
posted @ 2019-05-20 22:22 王小默 阅读(498) 评论(0) 推荐(0) 编辑
摘要:MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。 应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。 消息传递:指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用 阅读全文
posted @ 2019-05-20 22:10 王小默 阅读(7336) 评论(0) 推荐(1) 编辑
摘要:一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,Roc 阅读全文
posted @ 2019-05-20 21:45 王小默 阅读(4990) 评论(0) 推荐(2) 编辑
摘要:在秒杀、抢火车票等地方,我们通常用遇到这样高并发的问题,下面我提供了四种解决方案:1、使用文件锁$fp=fopen("order.lock","r");if(flock($fp,LOCK_EX)){//..处理订单的代码flock($fp,LOCK_UN);}fclose($fp);———————— 阅读全文
posted @ 2019-05-20 21:25 王小默 阅读(548) 评论(0) 推荐(0) 编辑
摘要:QPS:即服务器每秒request请求或者查询的数量,在互联网领域,值每秒的响应response的请求数 常用的性能测试工具 :ab、wrk、http_load、web bench 、 siege、Apache jmeter 优化方案: WEB服务器负债均衡: nginx配置: 阅读全文
posted @ 2019-05-20 21:14 王小默 阅读(659) 评论(0) 推荐(0) 编辑
摘要:在理解php-fpm之前,我们要先搞清楚几个关键词以及他们之间的关系:CGI FastCGI:(Fast Common Gateway Interface),即快速通用网关接口,是一种让交互程序与Web服务器通信的协议。它是CGI的增强版本 php-fpm php-cgi. CGI:(Common 阅读全文
posted @ 2019-05-20 20:56 王小默 阅读(112) 评论(0) 推荐(0) 编辑
摘要:strlen和mb_strlen都是用于获取字符串长度的; strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数, 如果是多字节码编码,如gbk和utf8,使用strlen得到的不是字符的个数,而是该字符的总字节数, 可以使用mb_strlen获取其字符个数,使用mb_strlen要 阅读全文
posted @ 2019-05-17 17:43 王小默 阅读(204) 评论(0) 推荐(0) 编辑
摘要:构造方法,是一个特殊的方法: 1,名字是固定的:_ _construct; 2,该方法通常都不要我们自己调用,而是在new一个对象的时候会自动调用。 3,该方法主要的目的是为了在new一个对象的时候,给该对象设置一些“初始值”(初始化工作); 4,构造方法的参数没有规定,通常是根据实际的需要来定义, 阅读全文
posted @ 2019-05-17 17:28 王小默 阅读(917) 评论(0) 推荐(0) 编辑