自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Elasticsearch 入门(安装、调试)

 最近看了下elasticsearch(后面我们叫他es,是不是很熟悉),这个软件是用来做搜索的,我也是个小白,不太清楚现在普遍用的是什么,我自己研究了下,记下来,有一些坑。1.安装 java环境    这里是需要java环境的,因此,首先要安装java环境    1.1 下载java  jdk,直接将下载好的jdk-8u151-linux-x64.rpm 安装包 ;上传到自己创建...

2018-10-29 17:40:16 417

原创 PhpStorm 上面的git集成用法

phpStrom这个php的 IDE完美的集合了git,对于有些对命令行不是很熟悉的同学来说,这可以带来很大的帮助,下面我给大家说一下具体的用法。1.我们提交自己的代码a:在我们的项目上,右击,如图所示,相当于 git add ,这个大家都懂。b:下一步操作,相当于 git commit c: 拉取版本库代码,相当于 git pulld:推送代码 git p

2018-01-04 15:01:07 20893

原创 ajax上传问题

上传不会有太大的问题,可是问题是什么呢?今天我在做项目的ajax图片上传是遇到一个问题,看看大家有没有类似的经历:1.异步上传(没有问题)2.问题来了,我在一个表单中使用ajax上传,如果是新增的信息,我们数据库中还没有生成相应的ID,这时候图片上传在数据库中就找不到相应的位置,图片虽然上传成功,但是跟我们表单提交的信息对应不起来,这是个严重的bug,针对上述问题怎么解决呢?我说下

2017-09-07 18:02:12 407

原创 PHP错误机制

在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的。 所以引用以下几中函数。我们先来说异常:首先要明白异常跟错误是不一样的,异常是出现正常逻辑之外的情况,而错误是指运行时出错了,比如,使用了一个未定义的变量等,异常需要抛出(throw)才能被捕捉到,而错误会导致程序执行终止1、通常处理异常的方式是使用try{}catch{}去捕捉有throw抛出的异常

2017-08-30 10:08:47 295

原创 配置参数

user nginx nginx ;Nginx用户及组:用户 组。window下不指定 worker_processes 8;工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。error_log  logs/error.log;  error_log  logs/error.log  notice;  error_log  logs/error.lo

2017-08-29 15:18:24 304

原创 一个简单的php站点配置

简单的PHP站点中,nginx怎样为一个请求选择location来处理:  server {     listen      80;     server_name example.org www.example.org;     root        /data/www;      location / {         index   index.html

2017-08-22 17:17:17 2466

原创 Nginx基本配置

Nginx的主配置文件是:nginx.confnginx.conf 主要组成如下:在Nginx配置文件(nginx.conf)中,一个最简化的虚拟主机配置代码如下:http { server { listen 80 default-server; server_name abc.com;

2017-08-18 14:15:25 312

原创 php实现加密

由于项目的需要,要写一个能生成“授权码”的类(授权码主要包含项目使用的到期时间),生成的授权码将会写入到一个文件当中,每当项目运行的时候,会自动读取出文件中的密文,然后使用唯一的“密钥”来调用某个函数,对密文进行解密,从中解读出项目的使用到期时间。之前,自己有先试着写了下,主要是base64+md5+反转字符串。算法太过简单,很容易被破解,而且也没有能过做到“密钥”在加解密中的重要性,故而舍之

2017-08-17 14:40:08 383

原创 项目登陆功能的总体架设

登陆功能是项目中最基本的功能,说简单也简单,可是也不是那么简单,还是架构问题吧!登陆是一个项目的入口,是基础,我们应该怎么架构这个问题,下面看看我的方法:1.毫无疑问,是我们的登陆的控制器public function doLogin() { // 验证令牌 $this->checkFormToken(); // 密码登录

2017-08-09 11:26:37 251

转载 不再以讹传讹,GET和POST的真正区别

如果有人问你,GET和POST,有什么区别?你会如何回答?我的经历前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把GET改个名字叫GET2。他反问道,那就是单纯的名字上的区别喽?我想了想,我觉得如果说再具体的区别,只能去看RFC文档了,

2017-08-02 15:51:13 248

原创 ajax异步请求查询操作

大概的思路是这样的,这也是我项目中的经历:1.前端首先获取到输入的input框的值2.ajax异步发送请求去后端接口3.相应的接口处理逻辑,返回json4.前端判断相应值并且渲染页面HTML代码 来电电话 * js代码$('#phone').blur(function(){ var phone

2017-08-01 14:36:42 628

转载 PHP内核探索:PHP中的哈希表

PHP中使用最为频繁的数据类型非字符串和数组莫属,PHP比较容易上手也得益于非常灵活的数组类型。 在开始详细介绍这些数据类型之前有必要介绍一下哈希表(HashTable)。 哈希表是PHP实现中尤为关键的数据结构。哈希表在实践中使用的非常广泛,例如编译器通常会维护的一个符号表来保存标记,很多高级语言中也显式的支持哈希表。 哈希表通常提供查找(Search),插入(Insert),删除(Dele

2017-07-13 09:40:07 317

转载 PHP内核探索:变量存储与类型

先回答前面一节的那个问题吧。0102$foo = 10;03$bar = 20;04  05function change() {06    global$foo;

2017-07-13 09:38:42 325

转载 PHP内核探索:变量概述

现代编程语言中的基本元素主要有:变量,流程控制接口,函数等等。我能否不使用变量来编写程序呢? 这显然是可以的,例如:12echo "Hello NowaMagic";3?>这个程序很简单,输出一个字符串内容。就和我们仅仅使用二进制也能编程一样,不使用变量也

2017-07-13 09:37:30 253

转载 PHP内核探索:解释器的执行过程

这里将介绍引擎内部执行一个PHP脚本的流程,以CLI SAPI为例子来对流程中核心的部分做简单介绍,省去一些初始化及清理操作。CLI(Command Line Interface)即PHP的命令行模式,现在此SAPI是默认安装的,我们在服务器上安装完PHP之后,一般会生成一个可执行文件,假设此文件为/usr/local/bin/php ,那么我们在SHELL下可以用以下命令来执行一个PHP脚本

2017-07-13 09:35:22 331

转载 PHP内核探索:PHP里的opcode

opcode是计算机指令中的一部分,用于指定要执行的操作, 指令的格式和规范由处理器的指令规范指定。 除了指令本身以外通常还有指令所需要的操作数,可能有的指令不需要显式的操作数。 这些操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端口中的值等等。通常opcode还有另一种称谓:字节码(byte codes)。 例如Java虚拟机(JVM),.NET的通用中间语言(CIL: Comm

2017-07-12 09:12:16 260

转载 PHP内核探索:操作码OpCode

运行一段PHP代码主要有两个阶段:编译和执行。 当然编译过程中还包括词法分析语法分析不同阶段和细节,这里我们将其作为一个整体。在这两个阶段之间,PHP代码会被编译成op code,可以将其认为是引擎的一个中间语言,编辑阶段把PHP源码生成op code,然后在执行阶段执行这些op code。这篇文章将简单的介绍op code。PHP代码编译之后会生成许多的op,每一个op都是一个zend_op

2017-07-12 09:10:53 369

转载 PHP内核探索:PHP脚本的执行细节

众所周知,计算机的CPU只能执行二进制的机器码,每种CPU都有对应的汇编语言,汇编语言编译器将汇编语言翻译成二进制的机器语言,然后CPU开始执行这些机器码。汇编语言作为机器语言与程序设计者之间的一个层,给我们带来了很多方便,程序员不需要用晦涩的01数字来书写程序,当然人们并不满足这样的一个进步,于是在汇编语言之上又多了一个层——C语言,C语言更贴近人类熟悉的“自然语言”,程序设计者可以通过C语言编

2017-07-12 09:09:39 204

转载 PHP内核探索:如何执行PHP脚本

前面介绍了PHP的生命周期,PHP的SAPI,SAPI处于PHP整个架构较上层,而真正脚本的执行主要由Zend引擎来完成, 这一小节我们介绍PHP脚本的执行。目前编程语言可以分为两大类:第一类是像C/C++, .NET, Java之类的编译型语言, 它们的共性是:运行之前必须对源代码进行编译,然后运行编译后的目标文件。第二类比如PHP, Javascript, Ruby, Python

2017-07-12 09:08:34 922

转载 PHP内核探索:PHP的FastCGI

CGI全称是“通用网关接口”(Common Gateway Interface), 它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据。 CGI描述了客户端和这个程序之间传输数据的一种标准。 CGI的一个目的是要独立于任何语言的,所以CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。 如php,perl,tcl等。FastCGI是Web服务器和处理程序之

2017-07-12 09:07:00 191

转载 PHP内核探索:嵌入式PHP

从PHP源码目录结构的介绍以及PHP生命周期可知:嵌入式PHP类似CLI,也是SAPI接口的另一种实现。 一般情况下,它的一个请求的生命周期也会和其它的SAPI一样:模块初始化=>请求初始化=>处理请求=>关闭请求=>关闭模块。 当然,这只是理想情况。因为特定的应用由自己特殊的需求,只是在处理PHP脚本这个环节基本一致。对于嵌入式PHP或许我们了解比较少,或者说根本用不到,甚至在网上相关的资料

2017-07-11 11:10:43 1168

转载 PHP内核探索:Apache运行与钩子函数

Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择。Apache并不是没有缺点,它最为诟病的一

2017-07-11 10:34:33 219

转载 PHP内核探索:一次请求的开始与结束

PHP开始执行以后会经过两个主要的阶段:处理请求之前的开始阶段请求之后的结束阶段开始阶段有两个过程:第一个过程是模块初始化阶段(MINIT), 在整个SAPI生命周期内(例如Apache启动以后的整个生命周期内或者命令行程序整个执行过程中), 该过程只进行一次。第二个过程是模块激活阶段(RINIT),该过程发生在请求阶段, 例如通过url请求某个页面,则在每次请求之前都会进行模

2017-07-11 09:57:31 217

翻译 PHP内核探索:从SAPI接口开始

SAPI:Server Application Programming Interface 服务器端应用编程端口。研究过PHP架构的同学应该知道这个东东的重要性,它提供了一个接口,使得PHP可以和其他应用进行交互数据。 本文不会详细介绍每个PHP的SAPI,只是针对最简单的CGI SAPI,来说明SAPI的机制。我们先来看看PHP的架构图:SAPI指的是PHP具体应用的编程接口, 就像

2017-07-11 09:56:07 360

转载 PHP内核探索:Apache模块介绍

Apache概述Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择。Apache支持许多特

2017-07-11 09:45:26 228

转载 php垃圾回收机制

在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么变量的空间可以被释放,否则就不释放,这是一种非常简单的GC实现。然而在这种简单的GC实现方案中,出现了意想不到的变量内存泄漏情况(Bug:http://bugs.php.net/bug

2017-07-10 18:05:09 256

转载 MySQL索引

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),

2017-06-28 19:47:27 210

转载 MySQL索引

首先:先假设有一张表,表的数据有10W条数据,其中有一条数据是nickname='css',如果要拿这条数据的话需要些的sql是 SELECT * FROM award WHERE nickname = 'css'一般情况下,在没有建立索引的时候,mysql需要扫描全表及扫描10W条数据找这条数据,如果我在nickname上建立索引,那么mysql只需要扫描一行数据及为我们找到这条nickna

2017-06-28 19:17:35 173

转载 MySQL常用命令

1 创建带解释的表?1234CREATE TABLE groups(  gidINT PRIMARYKEY AUTO_INCREMENT COMMENT'设置主键自增', gnameVARCHAR(200) COMMENT'列注释' ) COMMENT='表注释';

2017-06-28 17:50:25 138

转载 php计算问题

要搞明白这个原因, 首先我们要知道浮点数的表示(IEEE 754):  浮点数, 以64位的长度(双精度)为例, 会采用1位符号位(E), 11指数位(Q), 52位尾数(M)表示(一共64位).  符号位:最高位表示数据的正负,0表示正数,1表示负数。  指数位:表示数据以2为底的幂,指数采用偏移码表示  尾数:表示数据小数点后的有效数字.  这里的关键点就在于, 小数在二进

2017-06-28 16:29:09 350

转载 高并发情况

电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因?一、大规模并发带来的挑战在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个W

2017-06-28 15:54:39 1459

原创 thinkphp手册

http://document.thinkphp.cn/manual_3_2.html

2017-06-28 15:07:55 289

转载 MySQL命令

MySQL命令总结1、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。如果刚安装好MYSQL,超级用户root是没

2017-06-28 15:06:12 147

原创 thinkphp框架

关于 thinkphp框架中的缓存问题S方法可以帮助我们,而且他兼容memca、redis等缓存。S(array('type'=>'',expire=>60)); 初始化 type类型 expire 时间S('name',$value); 设置缓存S('name');  获取缓存S('name',null); 删除缓存thinkphp框架还是很强大的,大家加油吧

2017-06-27 15:32:50 278

原创 thinkPHP框架表单令牌

一、表单令牌验证这个可以帮助我们防止表单重复提交以及一些安全验证。具体在项目中怎么使用呢?下面是具体介绍:1.在我们需要的模块的conf文件夹下创建tags.php文件在文件中加入以下代码2.在配置文件中加入以下代码,配置令牌的信息3.最后我们在我们的控制器中编写一个验证的方法即可而autoCheckToken()这个方法是thinkPHP中的系统方

2017-06-27 15:16:16 403

原创 php中的密码加密问题

我们熟知的加密方式有很多,比如MD5,sha。下面是我工作中用到的密码加密的方式:我们利用php自带的函数,password_hash()。$password = 'password123456';//原始密码$hash_password = password_hash($password, PASSWORD_BCRYPT);//使用BCRYPT算法加密密码if (password

2017-06-26 14:29:26 257

原创 网站中返回上级的处理

我们开发网站是总会遇到页面的跳转问题,今天这个就是我工作终于到的。---返回到上级页面的实现思路。1.我们首先就要获取到返回的链接我们可以自定义一个方法:/** * 获取返回列表的链接 * @param $refer */protected function _backToListUrl($refer) { if ( !empty($refer) && 0 ===

2017-06-26 14:19:27 817

转载 MySQL中的锁机制

一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各

2017-06-26 11:45:07 214

原创 phpstorm常用快捷键

一、浏览和查找1. command + 1展开左侧 (alt + 1)2. shift + shift查找文件 (ctrl + shift + n)3. alt + command + o全局查找函数 (ctrl + alt + shift + n)4. fn + command + f12查找本文件所有函数5. command + 7显示类中的方法 (al

2017-06-26 11:31:17 491

原创 mysql主从复制延迟问题

一.如何检测主从延迟     可以通过监控 showslave status\G 命令输出的seconds_behind_master 参数值来判断,是否存在主从延时。     null -表示io_thread或sql_thread发生故障,也就是该线程的Running状态是No。(有故障)  0-该值为零,是我们极为渴望看到的情况,表示主从复制良好,可以认为lag不

2017-03-02 21:23:09 562

空空如也

空空如也

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

TA关注的人

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