自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mazhaer的博客

纯技术blog

  • 博客(44)
  • 收藏
  • 关注

转载 php的设计原则:单一职责原则

单一职责原则(SRP:Single responsibility principle)又称单一功能原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职...

2019-12-07 11:06:49 255

转载 Http报头Accept与Content-Type的区别

1.Accept属于请求头, Content-Type属于实体头。Http报头分为通用报头,请求报头,响应报头和实体报头。请求方的http报头结构:通用报头|请求报头|实体报头响应方的http报头结构:通用报头|响应报头|实体报头2.Accept代表发送端(客户端)希望接受的数据类型。比如:Accept:text/xml;代表客户端希望接受的数据类型是xml类型Content-T...

2019-11-16 09:17:54 198

转载 彻底明白ip地址,区分localhost、127.0.0.1和0.0.0.0

通俗的了解IP地址是什么对于IP地址,大家并不陌生,特别是在网络访问中我们会经常使用到(平时对域名如百度的www.baidu.com的访问,本质就是对域名所绑定的IP地址的访问),那么IP地址是什么呢?首先,我们要知道网络中的相互访问其实就是在进行两者间的数据传递。就如同送快递一样,快递发出只有知道你的住址信息,才能将快递送到你的手中。而在网络访问时,只有知道你在网络中的地址信息,才能将数...

2019-11-14 21:20:35 353

转载 系统的讲解 - PHP 接口签名验证

目录概览 常用验证 单向散列加密 对称加密 非对称加密 密钥安全管理 接口调试工具 在线接口文档 扩展 小结概览工作中,我们时刻都会和接口打交道,有的是调取他人的接口,有的是为他人提供接口,在这过程中肯定都离不开签名验证。在设计签名验证的时候,一定要满足以下几点:可变性:每次的签名必须是不一样的。 时效性:每次请求的时效性,过期作废。 唯一性:每次的签...

2019-11-14 12:08:23 133

转载 前后端的接口验证问题

问题通常我们在h5前端调用后台接口时,一般是ajax,那么接口的安全成了一个问题。这里可以肯定的说,前端调用的接口一定要验证!然后剖析了微信网页版、京东网页版这些,也都是通过接口的形势绑定数据,所以在进行前端开发时,除了直接后台模板绑定,比如dotnet的MVC,java的springMVC这些。前端和后端采用接口访问时的调用验证机制(基于JWT的前后端验证)JWT主要实现的T...

2019-11-14 09:33:56 1116

转载 前后端分离架构:Web实现前后端分离,前后端解耦

一、前言 ”前后端分离“已经成为互联网项目开发的业界标杆,通过Tomcat+Ngnix(也可以中间有个Node.js),有效地进行解耦。并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。 前后端分离(解耦)的核心思想是:前端Html页面通过Ajax调用后端的RestFu...

2019-11-13 14:50:32 485

转载 mysql5.7 mysql库下面的user表没有password字段无法修改密码

undefined如题所述,mysql5.7 mysql库下面的user表没有password字段无法修改密码,5.7版本已经不再使用password来作为密码的字段了 而改成了authentication_string登陆密码记不起:[root@master1 ~]# mysql -uroot -pEnter password: ERROR 1045 (28000): ...

2019-11-12 09:45:53 277

转载 关于MySQL中的8个 character_set 变量说明

本篇会简单介绍在 MySQL 中关于 8个 character_set 变量的基本作用。使用下列SQL语句可以查看 MySQL中8个 character_set 变量:SHOW VARIABLES LIKE '%char%';character_set 变量8个 character_set 变量:一、character_set_client二、character_se...

2019-11-11 10:17:44 270

转载 PDO防注入原理分析以及使用PDO的注意事项

我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题:为什么要使用PDO而不是mysql_connect?为何PDO能防注入?使用PDO防注入的时候应该特别注意什么?一、为何要优先使用PDO?PHP手册上说得很清楚:Prepared statements and stored proceduresMany of the mor...

2019-11-11 09:54:36 151

转载 web访问安全漏洞:XSS攻击 ,CSRF攻击

XSS攻击XSS攻击简介跨站脚本攻击(XSS),英文全称 Cross Site Script, 是Web安全头号大敌。XSS攻击,一般是指黑客通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式。其中,XSS攻击通常分为反射型XSS、存储型XSS、DOM Based XSS三种。可以通过以下例子看看XSS攻击是如何产生的。一个简单的例子本地服...

2019-11-09 11:33:37 285

转载 php 深入理解addslashes函数

php addslashes函数对于很多人来说并不陌生,但很大部分人只是了解皮毛,只知道addslashes函数是在特定字符前面加上反斜杠,本文章将带大家深入理解php addslashes函数的使用方法。php addslashes函数的作用是在预定义的字符前面加上反斜杠,这些预定义字符包括: 单引号(') 双引号(") 反斜杠(\) NULLaddsl...

2019-11-09 08:45:16 511

转载 get_magic_quotes_gpc 是做什么的,为何php5.4以上被移除了?

本函数功能:get_magic_quotes_gpc — 获取当前 magic_quotes_gpc 的配置选项设置,这个是magic_quotes_gpc在php.ini里面的配置选项,在运行时设置将不会成功。如果设置了这个选项,那么php解析器就会自动为POST、GET、COOKIE过来的数据增加转义字符"\"。为什么要有这个选项?增加转义符最主要的目的就是为了防止包含sql注...

2019-11-09 00:22:57 1732

转载 php错误处理之错误记录日志

在一些公司里面,有专门的日志收集系统,日志收集系统会在背后默默的帮你收集错误、警告、提示。也有些公司没有专门的日志收集系统,通过文件来记录服务器当中的运行日志。其中:PHP的错误,警告这些是必须要收集的。那么问题来了,不让用户看到,设置好错误报告级别,如何讲错误收集到日志系统中呢?这里需要使用到php.ini的相关配置项,这两个配置项为:参数 配置项 说明 lo...

2019-11-08 16:05:38 292

转载 正确使用cookie中的domain

domain的含义为域假设有两个域名a.b.e.f.com.cn 以下用域名1指代此域名c.d.e.f.com.cn 以下用域名2指代此域名在域名中,所有域名进行分级,也就是说域名1与域名2都是f.com.cn的子域名,f.com.cn又是com.cn的子域名在域名1所使用的服务中,可以设置域名a.b.e.f.com.cnb.e.f.com.cne.f.com...

2019-11-08 11:18:02 186

转载 php session实现多级目录存放

当一个目录下有很多文件时,服务器的处理性能会变低,php默认的session仅仅存放在/tmp目录下,未进行分级,当有一定的访问量时,就存在性能问题了。首先,修改 php.ini的 session.save_path 选项修改如下:session.save_path = “2;/tmp/session” (去掉前面分号)表示把session存放在 “/tmp/session” 目录下,并且...

2019-11-08 10:20:46 168

转载 phpmail邮箱发送报错Mailer Error: SMTP connect() failed

$mail = new PHPMailer(true); $subject = '已签署完成'; $mail->CharSet ="UTF-8"; //设定邮件编码// $mail->SMTPDebug = 1;...

2019-11-07 21:25:34 812

转载 linux devel包 和 非devel包的区别

devel 包主要是供开发用,至少包括以下2个东西:1. 头文件2. 链接库有的还含有开发文档或演示代码。以 glib 和 glib-devel 为例:如果你安装基于 glib 开发的程序,只需要安装 glib 包就行了。但是如果你要编译使用了 glib 的源代码,则需要安装 glib-devel。原文:http://tieba.baidu.com/p/17169425...

2019-11-05 18:13:16 119

原创 PHP 的pecl 和 phpize 以及pear 和composer 对应的关系

一门编程语言,如果想壮大,需要集全球牛笔哄哄的编程工作者共同来开发设计维护。所以一般就是一门语言的基础部分设计好后,对外开放语言扩展API:嗨,大家一起来盖房子吧! 这里提到的php语言的扩展分两种,(php本身是c语言来开发的)c语言编写的和php本身语言编辑的(就比如用php写个函数一样)。c编辑的扩展被认为是贴近语言底层的实现,而把php编辑的扩展认为是语言...

2019-06-03 12:01:04 619

转载 对外开放的接口验证方式

接口安全问题    请求身份是否合法?    请求参数是否被篡改?    请求是否唯一?AccessKey&SecretKey (开放平台)请求身份为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。防止篡改参数签名    按照请求参数名的字母升序排列非空请求参数(包含AccessKey...

2018-12-27 14:24:48 8501

转载 php函数学习 fopen中r和w的区别

r+: Open for reading and writing. The stream is positioned at the beginning of the file.w+:Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The strea...

2018-09-10 00:18:41 729

转载 php面向对象编程之关键字 clone

对象也能被“克隆”在php5中,对象的传递方式默认为引用传递,如果我们想要在内存中生成两个一样的对象或者创建一个对象的副本,这时可以使用“克隆”。通过 clone 克隆一个对象对象的复制是通过关键字 clone 来实现的。用 clone 克隆出来的对象与原对象没有任何关系,它是把原来的对象从当前的位置重新复制了一份,也就是相当于在内存中新开辟了一块空间。通过关键字 clone 可以克隆...

2018-08-14 15:48:39 199

转载 php面向对象编程之关键字 abstract和interface

一、 抽象类abstractclass1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类。2 .抽象类不能被直接实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。3 .如果子类需要实例化,前提是它实现了抽象类中的...

2018-08-14 12:16:33 339

转载 php面向对象编程之3大特性 封装、继承、多态

面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下...

2018-08-14 11:48:31 305

转载 php面向对象编程之关键字 final

引用手册中的话: PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。那么意思说如果有一个final修饰了一个方法,那么我们在继承的类里面就不能重写他,或者说覆盖他。那么我们依然继承了这个方法。我们看以下代码:<?phpclass BaseClass { public func...

2018-08-14 10:36:51 209

原创 什么是好的电影?

1:为什么产生这样的疑问?     我人生看的第一部有印象的电影是星球大战,很多年前了,当时就觉得:哇,原来外星人长成这个样子,人类能够超过光速。     上大学期间呢,打法无聊的时间,让自己看了很多国外的电影,不知道为什么看完了《星球大战》,以及后来的《黑客帝国》之后,就觉得美国的科幻电影就不行了,再也没有突破了,《阿凡达》感觉很一般。没星战的格局大,没黑帝的科技发光点亮眼。更没有追过复...

2018-07-29 15:55:30 392

原创 一种web接口命名定义

开头直接给网站,阮一峰老师介绍东西就是到位:http://www.ruanyifeng.com/blog/2011/09/restful.html当然了规范归规范,但是大家在实际工作中,为了方便自己项目的开发,会结合自己情况,对规范做出调整形成自己的接口模式,毕竟没有硬性要求。下面介绍一下自己一套定义方式: ①:定义两种请求类型:get(查询),post(增,删,改)②:路径命...

2018-07-26 09:22:21 5154 2

转载 laravel学习问题1:laravel在中间件内生成参数并且传递到控制器2种姿势

姿势1使用$request->attributes->add($arr)方法Demo:注册中间件这部分就不说了 主要说用法class MidParams //中间件{ public function handle($request, Closure $next) { $mid_params = ['mid_params'=>'t...

2018-07-16 23:47:10 2804

原创 css的理解思考

1:css作为层叠样式表,从诞生就是为html的标签服务的,为了更好的管理html的标签,把html的标签分为了三大类:        块级元素,行级元素,行块元素(介于行级和块级的元素)2:个人在思考css的发展过程而猜测:①:就是早先的html其实主要就是文本文字,所以css又分出来一个分支就是大量的针对文字的样式,这些样式你会发现无论文字出现行级元素中还是块级元素中都适用,具体的体现就是使它...

2018-07-10 14:07:29 380

原创 php高级技能之消息队列

1:消息队列的概念原理和场景2:解耦案例,队列处理订单系统和配送系统3:流量晓峰案例:redis的list类型实现秒杀4:rabbitMQ:更专业的消息队列系统实现方案1:消息队列是什么?...

2018-06-28 13:07:48 417

原创 php中常用的算法

php相关的基础算法有四个,分别是:冒泡排序法,快速排序法,选择排序法,插入排序法1:冒泡排序法介绍:冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,依次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越来越小的元素会经由交换慢慢"浮"到数列的顶端。步骤:①:比较相邻的元素。如果第一个比第...

2018-06-25 11:53:37 298

转载 架构设计思路

所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠运行灯一系列问题与挑战。为此,在实践中提出了许多解决方案,以实现网站高性能、高可靠性、易伸缩、可扩展、安全等各种技术架构目标。1、分层分层是企业应用系统中最常见的一种架构牧师,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。在网站的分层架构中,常见的为...

2018-06-23 08:53:54 3648

转载 大型网站演变过程

大型网站特性既然说的是大型网站架构,那么架构的背后自然是解决人因面对大型网站特性而带来的问题。这样可以先给大家说下大型网站的特性,这些特性带来的问题就是人要解决的问题:高并发、大流量:PV 量巨大;高可用:7*24 小时不间断服务;海量数据:文件数目分分钟 xxTB;用户分布广泛,网络情况复杂:网络运营商;安全环境恶劣:黑客的攻击;需求快速变更,发布频繁:快速适应市场,满足用户需求;渐进式发展:慢...

2018-06-23 08:22:26 256

转载 什么是分布式系统

一、三个步骤完成华丽转身——任意软件变为“分布式”分布式——一个高大上的名词,是计算机软件设计中人民群众喜闻乐见的“逼格满满”、“不明觉厉”的几个名词之一。但很可惜,这玩意儿一点也不复杂,甚至有些“简单”。不信?你只要遵循下述步骤即可将任何一个软件拆分为“分布式”的:将你的整个软件视为一个系统(不管它有多复杂)将整个系统分割为一系列的 Process(进程), 每个 Process 完成一定的功能...

2018-06-23 07:40:50 194

原创 mysql数据库的优化方式

这里介绍的优化方式是指的sql的编写的细节上的优化:1:选取合适的字段属性mysql可以很好的支持大数据量的存取,但是一般来说,数据库中的表越小,在它上面执行的查询也就会越快。所以,在创建表的时候 ,为了获得更好的性能,我们可以将表中的字段的宽设的尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因...

2018-06-22 03:37:27 130

原创 权限控制的设计种类

RBAC模式

2018-06-22 01:23:45 1199 1

原创 PHP面试题总结

1:mvc是是什么?相互间有什么关系?mvc是一种设计模式,m(model)模型层,v(view)视图层,c(controller)逻辑层客户端发起请求->控制器处理请求,如果用到数据则请求模型层->返回视图层2:oop是什么?oop是面向对象编程,面向对象编程是一种计算机编程架构,与之相对的是面向过程编程oop具有3大特点:①封装性:就是信息隐藏,就是实现类中的public,prot...

2018-06-21 20:18:28 338

原创 php处理异常机制

与异常相关的配置项:①:错误有两种呈现方式,一种是display_errors=on /off 配置项控制错误是否显示到浏览器中,另一种是log_errors和error_log配置的错误日志里面②:配置error_reporting设置错误报告级别,这个与display_errors和error_log有关,只会把对应的错误级别记录到错误日志中或者打印到浏览器上异常处理:①:try...catc...

2018-06-20 19:27:02 171

原创 window下的composer如何安装

1:首先要下载Composer-Setup.exe(https://getcomposer.org/Composer-Setup.exe)应用程序,不过看尿性很大可能性是下载不下来的,这里提供百度网盘下载链接(http://pan.baidu.com/s/1geGsj2z)2:运行composer-setup.exe文件之前,确保已经设置了php全局环境变量(win7下,点击我的电脑(或者计算

2018-06-20 16:56:22 224

转载 PHP中array_merge和array相加的区别分析

天处理一个这样的问题:如何获取字符键名相同值不同的两个数组值集合,用array_merge和数组相加都不可行,让我认真比较了下PHP中array_merge和array相加的区别首先来看看键名是string,两者区别:复制代码 代码如下:$arr1 = array('a'=>'PHP');$arr2 = array('a'=>'JAVA');//如果键名为字符,且键

2016-11-17 09:23:22 254

原创 php中 mkdir和chmod创建目录文件夹权限

环境nging+php+linux在服务器上使用mkdir("路劲",777)直接创建文件夹,发现生成之后权限属性只显示“d”,自然在此目录下无法上传文件,后来修改了代码为:mkdir("路劲");chmod("路劲",777);生成的文件夹权限属性为“drwxrwxrwx”。总结:php若要创建一个有读写权限的目录,最好使用以下代码,不要直接使用mkdir函数

2016-11-16 11:37:43 9760 1

空空如也

空空如也

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

TA关注的人

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