![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php
文章平均质量分 79
A心无旁骛
这个作者很懒,什么都没留下…
展开
-
什么XSS攻击?PHP防止XSS攻击函数
XSS 全称为 Cross Site Scripting,用户在表单中有意或无意输入一些恶意字符,从而破坏页面的表现!看看常见的恶意字符XSS 输入:1.XSS 输入通常包含 JavaScript 脚本,如弹出恶意警告框:alert("XSS");2.XSS 输入也可能是 HTML 代码段,譬如:(1).网页不停地刷新 (2).嵌入其它网站的链接转载 2017-09-02 18:50:57 · 1292 阅读 · 0 评论 -
面向对象编程思想(OOP)
软件开发中疑难问题:软件复杂庞大很多软件进入维护阶段需求的不断变更软件开发中存在很多其他的问题,上面只是从程序开发和设计的角度看到的部分问题。需求解决上面软件开发中的问题,就要求我们编写(设计)的软件具有很好的可读性、可维护性和可扩展性。我们需要保证代码具有高内聚低耦合。下面将简单介绍面向对象的一些基本特性、设计原则,以及设计模式关系。四大基本特性:抽象:提取现实世界中某事转载 2017-08-10 11:57:13 · 492 阅读 · 0 评论 -
基于Redis实现分布式消息队列(3)
1、Redis是什么鬼?Redis是一个简单的,高效的,分布式的,基于内存的缓存工具。 假设好服务器后,通过网络连接(类似数据库),提供Key-Value式缓存服务。简单,是redis突出的特色。 简单可以保证核心功能的稳定和优异。2、性能性能方面:Redis是足够高效的。 和Memecached对比,在数据量较小大情况下,Redis性能更优秀。 数转载 2017-07-16 13:09:35 · 626 阅读 · 0 评论 -
基于Redis实现分布式消息队列(2)
1、消息队列需提供哪些功能?在功能设计上,我崇尚奥卡姆剃刀法则。 对于消息队列,只需要两个方法: 生产 和 消费。 具体的业务场景是任务队列,代码设计如下:public abstract class TaskQueue{ private final String name ; public String getName(){return this.name;}转载 2017-07-16 13:07:44 · 366 阅读 · 0 评论 -
基于Redis实现分布式消息队列(1)
1、为什么需要消息队列?当系统中出现“生产“和“消费“的速度或稳定性等因素不一致的时候,就需要消息队列,作为抽象层,弥合双方的差异。举个例子:业务系统触发短信发送申请,但短信发送模块速度跟不上,需要将来不及处理的消息暂存一下,缓冲压力。 再举个例子:调远程系统下订单成本较高,且因为网络等因素,不稳定,攒一批一起发送。 再举个栗子,交互模块5:00到24:00和电商系统联通,转载 2017-07-16 13:07:04 · 413 阅读 · 0 评论 -
PHP面向对象——三大基本特性与五大基本原则
三大特性是:封装、继承、多态所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,转载 2017-07-16 12:49:25 · 427 阅读 · 0 评论 -
php面向对象的三大特征
1、面向对象的三大特征:封装、继承、多态、(抽象(扩展的))2、00A:分析,OOD:设计,OOP:编程。3、封装:信息隐蔽,封装,所有的函数和方法,类中的属性和行为也是封装。 三个访问修饰符public、protected、private也是封装。4、public 公共的 谁都可以用,也可以修改;protected 受保护的 只有自己和后代可以使用和修改; private 私有的 只转载 2017-07-16 12:46:53 · 2005 阅读 · 0 评论 -
JSON最佳实践
JSON是一种文本方式展示结构化数据的方式,从产生的时候开始就由于其简单好用、跨平台,特别适合HTTP下数据的传输(例如现在很流行的REST)而被广泛使用。1、JSON是什么JSON起源于1999年的JS语言规范ECMA262的一个子集(即15.12章节描述了格式与解析),后来2003年作为一个数据格式ECMA404(很囧的序号有不有?)发布。2006年,作为rfc4627发布,这转载 2017-06-12 09:39:18 · 797 阅读 · 0 评论 -
编程思想的理解(POP,OOP,SOA,AOP)
1)POP--面向过程编程(Process-oriented programming ):面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,在程序设计中主要以函数或者过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成。面向过程强调的是功能(加工),数据仅仅作为输入和输出存在。这种过程化的思想是一种很朴素和普遍的思想和方法,人类很多转载 2017-08-10 11:58:54 · 354 阅读 · 0 评论 -
php-app开发接口加密
/**inc 解析接口客户端接口传输规则:1.用cmd参数(base64)来动态调用不同的接口,接口地址统一为 http://a.lovexpp.com2.将要传过来的参数组成一个数组,数组添加timestamp元素(当前时间戳,精确到秒),将数组的键值按照自然排序从大到小排序3.将数组组成 key=val&key=val的形式的字符串,将字符串与XPP_KEY连接在一起,用md5加密转载 2017-08-17 22:06:03 · 3256 阅读 · 0 评论 -
TP单字母函数整理
有人不太喜欢TP这种单字母函数,其实这也是TP的一个特色,如果理解了这些函数的作用,不管是背,还是写,都是非常方便的,接下来我们以字母顺序开始。A函数(基本是Action的简写) A函数是用来实例化我们的Action类的,例如我们的程序有2个Action分别是IndexAction和TestAction,在 IndexAction中有个myHello方法能够输出hello world,如原创 2017-09-07 17:13:12 · 822 阅读 · 0 评论 -
Redis五种数据类型介绍
概述Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合。本文详细介绍这五种数据类型的使用方法。本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方文档:Redis命令大全字符串类型字符串是Redis中最基本的数据类型,它能够存储任何类型的字符串,包含二进制数据。可以用于存储邮箱,JSON化的对象,甚至是一张图片,一个字原创 2017-09-06 21:14:16 · 501 阅读 · 0 评论 -
【memcache缓存专题(1)】memcache的介绍与应用场景
简介Memcached是一个高性能的分布式的内存对象缓存系统,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。MemCache的工作流程如下:先检查客户端的请求数据是否在me原创 2017-09-06 21:13:05 · 440 阅读 · 0 评论 -
Redis常见7种使用场景(PHP实战)
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。本篇文章,主要介绍利用PHP使用Redis,主要的应用场景。简单字符串缓存实战$redis->connect('127.0.0.1', 6379);$strCacheKey = 'Test_bihu';//SET 应用$arrCac原创 2017-09-06 21:10:40 · 382 阅读 · 0 评论 -
Redis常用数据类型
[php] view plain copy Redis最为常用的数据类型主要有以下五种: ●String ●Hash ●List ●Set ●Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: [php] view plain co原创 2017-09-06 21:07:55 · 618 阅读 · 0 评论 -
PHP常用的文件操作函数集锦
以下是个人总结的PHP文件操作函数。当然,这只是部分,还有很多,我没有列出来。一 、解析路径:1 获得文件名:basename();给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。eg:$path = "/home/httpd/html/index.php";$file = base转载 2017-09-06 12:35:00 · 391 阅读 · 0 评论 -
日志-php-error错误日志查看
前言:对于我们做php开发的人员,上了生产环境,一定要把相关debug,display_errors错误提示等关掉。谁还难免不犯个错呢?这样能防止非致命性报错下,导致项目路径、数据库等信息泄漏。问:那么问题来了,我们在生产该如何查看php等相关错误呢?答:记录到错误日志里。error.log(或直接发送到syslog)下边就如何配置和查看日志作出简单叙述。转载 2017-08-25 21:46:59 · 801 阅读 · 0 评论 -
Mysql主从数据库配置详解
1 复制概述 mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发转载 2017-08-11 11:26:10 · 765 阅读 · 0 评论 -
php常用字符串函数小结
php内置了98个字符串函数(除了基于正则表达式的函数,正则表达式在此不在讨论范围),能够处理字符串中能遇到的每一个方面内容,本文对常用字符串函数进行简单的小结,主要包含以下8部分:1.确定字符串长度、2.比较字符串、3.分割连接反转、4.html与字符串相互转化、5.填充和剔除字符串、6.统计字符和单词个数、7.查找替换截取、8.大小写处理。确定字符串长度strlen函数和mb_st转载 2017-06-10 16:43:11 · 416 阅读 · 0 评论 -
php 常用数组操作整理
概述要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。像其他变量一样,使用运算符=可以改变数组元素的内容。数组单元可以通过 array[key] 语法来访问。php定义函数:<?php $array = array(); $array["key"] = "values"; ?> 在转载 2017-06-10 16:34:52 · 801 阅读 · 0 评论 -
php 字型文字写入图片
那首先呢 我们先获取本地或者服务器上的图片$img = SERCURITY_RES.'/1234567.jpg';$imgs = file_get_contents($img);$im = @imagecreatefromstring($imgs) or die ("打开图片失败!");//创建一个图像资源从字符串中的图像流。接下来就要用到这个函数 imageT原创 2017-07-01 14:55:47 · 848 阅读 · 0 评论 -
500G JAVA视频网盘分享 (JEECG开源社区)
500 G JAVA视频网盘分享(JEECG开源社区)[涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有]JEECG开源社区秉承开源宗旨,分享社区Java架构视频,更多资料点击: www.jeecg.org JEECG师徒架构群③:24110687转载 2017-06-05 09:31:33 · 3067 阅读 · 0 评论 -
浅析php中三个等号(===)和两个等号(==)的区别
先举个列子:比如你一个函数会返回这几种情况:1、大于0的数2、小于0的数3、等于0的数(也就是0啦)4、False(失败时)这时候如果你想捕获失败的情况,你就必须用===,而不能用==因为==除了会匹配第4种情况外,还会匹配第3种情况,因为0也是假!三个等号代表比较对象的类型也要一致。两个等号表示只要值相等就满足条件。再来补充转载 2017-05-31 15:28:58 · 1811 阅读 · 0 评论 -
SVN和Git的比较
1. Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;2. Git下载下来后,在本地不必联网就可以看到所有的log,很方便学习,SVN却需要联网;3. Git鼓励分Branch,而SVN,说实话,我用Branch的次数还挺少的,SVN自带的Branch merge我还真没用过,有me转载 2017-05-31 15:23:45 · 485 阅读 · 3 评论 -
介绍memcache与redis 以及相互之间的比较
1.什么是memcache memcache是一个免费开源、高性能、具有分布式对象的缓存系统,它可以用来保存一些常用的对象和数据。保存的数据像一张巨大的HASH表,这个表已key-value的形式来存储。2.memcache能解决什么问题 1.提高系统的并发能力 2.减轻数据库的压力 这两种用途其实很容易理解。因为memcache的高性能,所以他可以用来同时服务更多原创 2017-05-31 14:34:59 · 1936 阅读 · 0 评论 -
php常用魔术方法
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括:__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一个不可访问方法时调用__get(),获得一个类的成员变量时转载 2017-05-26 15:34:52 · 576 阅读 · 0 评论 -
对称加密和非对称加密介绍和区别
什么是对称加密技术? 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty转载 2017-05-26 15:32:44 · 590 阅读 · 0 评论 -
上传exel表格 以及处理的方式
1.表单页面createWebUrl('order', array('op'=>'csv_file'))}" method="post" enctype="multipart/form-data" > 2.控制器里面//获取文件 $file_stu=$_FILES['csv_fil原创 2017-05-26 15:20:18 · 486 阅读 · 0 评论 -
实现无限极分类的一个类、以及统计每个等级有多少的个数(存在父子级关系的字段)
function get_array($ids =' ' ) { $sql = "select * from " . tablename('表明') . " WHERE upopenid = :upopenid"; $items = pdo_fetchall($sql,array原创 2017-05-26 15:16:03 · 1857 阅读 · 0 评论 -
Nginx 502错误原因和解决方法
一、NGINX 502错误排查 NGINX 502 Bad Gateway错误是FastCGI有问题,造成NGINX 502错误的可能性比较多。将网上找到的一些和502 Bad Gateway错误有关的问题和排查方法列一下,先从FastCGI配置入手:1.FastCGI进程是否已经启动 2.FastCGI worker进程数是否不够 运行 netstat -anpo | gre转载 2017-06-01 14:12:54 · 31766 阅读 · 0 评论 -
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
话不多bb,我们直接看代码12345678910111213141516171819202122//获取域名或主机地址echo $_SERVER['HTTP_HOST'].""; //获取网页地址echo $_SERVER['PHP_SELF转载 2017-06-01 14:23:53 · 1854 阅读 · 0 评论 -
漫谈千亿级数据优化实践:一次数据优化实录
0x00 前言即使没有数据倾斜,千亿级的数据查询对于系统也是一种巨大负担,对于数据开发来说,如何来优化它,既是挑战,也是机遇!在上一篇文章 《漫谈千亿级数据优化实践:数据倾斜(纯干货)》中,我们分享了一些在千亿级数据优化实践中和数据倾斜相关的内容。本文将分享千亿级数据优化的另个一点:如何使用使用数据!注意: 本文会限定一些业务场景和技术架构,因此解决方法会局限于此。转载 2017-06-22 09:46:03 · 316 阅读 · 0 评论 -
二维数组变一维数组,统计键值总和
首先我们先写好我们的sql语句,这里我的一个sql是三表联查的一个例子 $sql = "select `order` .*,`info`.goodsnum as snum ,`realtion`.upagentid as upid from ".tablename('表1')." as `order`left join ".tablename('表2')." as `realtio原创 2017-06-21 15:07:15 · 727 阅读 · 0 评论 -
php中try catch捕获异常实例详解
本文实例讲述了php中try catch捕获异常。分享给大家供大家参考。具体方法分析如下:php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣的朋友可以一起来看看。PHP中try{}catch{}语句概述PHP5添加了类似于其它语言的异常处理模块。在 PHP 代码中所产生的异常可被 throw语句抛出并被 catch 语句捕获。(转载 2017-06-07 10:12:21 · 911 阅读 · 0 评论 -
PHP弱类型变量是如何实现的
PHP是弱类型,动态的语言脚本。在申明一个变量的时候,并不需要指明它保存的数据类型。例如:$var = 1; $var = "variable"; $var = 1.00; $var = array(); $var = new Object();动态变量,在运行期间是可以改变的,并且在使用前无需声明转载 2017-06-07 10:10:59 · 1220 阅读 · 0 评论 -
mysql 有哪些索引
Mysql支持哪几种索引从数据结构角度1、B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理2、hash索引:a 仅仅能满足"=","IN"和""查询,不能使用范围查询b 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率转载 2017-06-07 10:09:59 · 781 阅读 · 0 评论 -
网站或接口响应时间较长应该如何排查?
我就简单说一下:1.假如你的网站打开很久,什么原因呢,先从最外层排查。浏览器按F12,看看Network哪个文件时间最长,这个是为了排查有可能css或者js插件引用了一些被国内墙住的地址,一直请求不到,所以时间很久。找到相关的地方注释,或者引用本地的。2.如果文件引用什么的都没问题,看接口吧,先自己写个脚本访问内网访问一下接口,看看是否时间很长,如果很长,追进接口,逐条分析,找到sql转载 2017-06-07 10:09:18 · 10685 阅读 · 1 评论 -
Nginx为什么比Apache Httpd高效:原理篇
标签:一、进程、线程?进程是具有一定独立功能的,在计算机中已经运行的程序的实体。在早期系统中(如linux 2.4以前),进程是基本运作单位,在支持线程的系统中(如windows,linux2.6)中,线程才是基本的运作单位,而进程只是线程的容器。程序 本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。若干进程有可能与同一个程序相关系,且每个进程皆可以同步转载 2017-06-02 14:35:11 · 598 阅读 · 0 评论 -
apache与nginx优缺点比较(总结)
下面我们来看看apache与nginx到底有什么区别,话不多bb,直接来干的1.首先来看nginx相对于apache的优点 轻量级,同样比起来web服务器,比apache占用更少的内存与资源 抗病发,nginx请求时异步非堵塞的,(异步非堵塞的理解:非阻塞是这样定义的,当线程遇到 I/O 操作时,不会以阻塞的方式等待 I/O 操作的完成或数据的返回,而只是将 I/O 请原创 2017-06-02 14:33:31 · 5980 阅读 · 0 评论 -
HTTP状态码
200 - OK,服务器成功返回网页 - Standard response for successful HTTP requests.301 - Moved Permanently(永久跳转),请求的网页已永久跳转到新位置。 - This and all future requests should be directed to the given.403 - Forbidden转载 2017-05-26 11:48:14 · 649 阅读 · 0 评论