随笔分类 - PHP
一切和PHP有关的东东!
摘要:公司是做棋牌游戏的。前段时间接到一个后台人工鉴定并处理通牌作弊玩家的需求,其中需要根据几个玩家的游戏ID查询并计算他们在某段时间内彼此之间玩牌输赢次数和输赢总额。 牌局数据是存储在日志中心的,他们把牌局数据分成两个表来存储,一个表存储牌局概况数据,例如牌局时间、牌局ID、桌子ID、用户ID等信息,另
阅读全文
摘要:一、Redis连接与认证 二、String操作 三、Hash操作 四、List操作 五、Set操作 六、Zset操作
阅读全文
摘要:MongoDB的PHP驱动提供了一些核心类来操作MongoDB,总的来说MongoDB命令行中有的功能,它都可以实现,而且参数的格式基本相似。PHP7以前的版本和PHP7之后的版本对MongoDB的操作有所不同,本文主要以PHP7以前版本为例讲解PHP对MongoDB的各种操作,最后再简单说明一下P
阅读全文
摘要:php使用json_encode()把数组转换为json的时候,总会把中文进行转码,转码后从json数据上我们无法看出其中的中文文字。php5.4以后,当json_encode()的第二个参数赋值为JSON_UNESCAPED_UNICODE的时候则不对中文进行转码。 当然,使用之前需要对当前环境的
阅读全文
摘要:session_start():打开服务器上的session文件。 session_commit():会把$_SESSION数组的内容写入到服务器上的session文件中,但不会清空$_SESSION变量的内容。 为了防止并发操作,任何时候只有一个脚本文件可以操作session文件,如果脚本运行的时
阅读全文
摘要:使用原生php读写excel文件的博文地址: 基于使用原生php读写excel文件的不靠谱,本文将简单介绍如何使用第三方类库phpexcel来读写excel文件。 首先,需要到githut下载phpexcel类库。下载地址:https://github.com/PHPOffice/PHPExcel。
阅读全文
摘要:最近在工作中遇到一个需求,需要将数据库中的数据导出到excel文件中,并下载excel文件。因为以前没做过,所以就百度了一下,网上说的大多是使用PHPExcel类来操作excel文件,这还要去下载这个类才能使用,而我只想使用原生的php,不想那么麻烦,好在也有网友说到关于原生php生成excel文件
阅读全文
摘要:在开发工作中遇到这样一种情形,需要在循环体中动态向遍历中的数组添加元素并在当前循环遍历中使用数组的全部元素。 首先使用foreach循环来遍历数组,将代码简化抽象如下: 结果只打印出数组原来已有元素,在循环体中动态添加的元素并没有打印出来。 后来改用for循环,coding如下: 这一次将数组原有的
阅读全文
摘要:开发工作中遇到这样一种情形,需要执行用户输入的php代码串,于是决定使用eval函数。coding大概示例如下: 结果打印出来的结果一直是空的,使用var_dump()打印出来是NULL,原来eval()函数负责执行的代码字符串中如果没有使用"return"返回值的话,是返回NULL的。 纠结了许久
阅读全文
摘要:PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写、DOMDocument读写、XMLWrite写和XMLReader读、SimpleXML读写,本文将依次对这四种方法进行介绍。 介绍之前首先对本文例子使用的数据和文件进行说明。本文写XML文件的例子都是从MySQL中读取数据
阅读全文
摘要:Php配置文件:php.ini(使用‘;’表示注释) Php的配置项可以在配置文件中配置,也可以在脚本中使用ini_set()函数临时配置。 语言相关配置: 1. engine:设置PHP引擎是否可用,默认值为On,若设置为Off则无法使用PHP。 配置示例: engine = On 2. shor
阅读全文
摘要:客户端浏览器和服务器之间通信使用的http协议是一种无状态的协议,在它看来,客户端发起的每个请求都是独立、没有关联的。然而,在实际的Web应用开发中,服务器却经常需要根据用户以往的一些状态或数据对请求做出相应的应答,所以需要记录用户的某些状态或数据。Session就是用于保持客户端请求和服务器应答之
阅读全文
摘要:file_exists()在判断文件是否存在的时候是递归判断每个目录是不是有执行权限。 echo输出大字符串速度慢:打开apache配置项'deflate'进行压缩输出。
阅读全文
摘要:一、什么是适配器模式 适配器模式有两种:类适配器模式和对象适配器模式。其中类适配器模式使用继承方式,而对象适配器模式使用组合方式。由于类适配器模式包含双重继承,而PHP并不支持双重继承,所以一般都采取结合继承和实现的方式来模拟双重继承,即继承一个类,同时实现一个接口。类适配器模式很简单,但是与对象适
阅读全文
摘要:一、什么是原型设计模式 原型设计模式使用一种克隆技术来复制实例化的对象,新对象是通过复制原型实例创建的。原型设计模式的目的是通过使用克隆以减少 实例化对象的开销。 在原型设计模式中,Client类是不可缺少的一部分。 PHP有一个内置的克隆方法__clone()可以在设计模式中使用,但是不能直接访问
阅读全文
摘要:一、什么是单例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,并且对外提供这个全局实例的访问入口。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。 二、PHP单例模式三要素 1. 需要一个保存类的唯一实例的静态成员变量。 2. 构造函数和克隆函数必须声明为私有的,防止外部程
阅读全文
摘要:一、什么是工厂方法模式 作为一种创建型设计模式,工厂方法模式就是要创建“某种东西”。对于工厂方法,要创建的“东西”是一个产品,这个产品与创建它的类之间不存在绑定。实际上,为了保持这种松耦合,客户会通过一个工厂发出请求,再由工厂创建所请求的产品。利用工厂方法模式,请求者只发出请求,而不具体创建产品。
阅读全文
摘要:一、引用计数基本知识 每个php变量存在一个叫"zval"的变量容器中,当一个变量被赋常量值时,就会生成一个zval变量容器。一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是"is_ref",是个bool值,用来标识这个变量是否是属于引用集合(reference se
阅读全文
摘要:1. 异常: 异常(Exception)用于在指定的错误发生时改变脚本的正常流程。 当异常被触发时,通常会发生: (1)当前代码状态被保存; (2)代码执行被切换到预定义的异常处理器函数; (3)根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本。
阅读全文
摘要:思路:递归算法。在一个已经排好序的数组中查找某一个数值,每一次都先跟数组的中间元素进行比较,若相等则返回中间元素的位置,若小于中间元素,则在数组中小于中间元素的部分查找,若大于中间元素,则在数组中大于中间元素的部分查找,若查找不到则返回-1.function binSearch($arr,$head...
阅读全文