
php
文章平均质量分 77
u011822516
这个作者很懒,什么都没留下…
展开
-
生成器思想与协程
生成器思想与协程最近在学习python,刚好看到生成器(generator),突然脑子灵光一闪,想到多年前看php文档的时候也花了时间去研究php的生成器与协程.于是就把之前写的东西总结一下,放下来.生成器看到这个名字,难免会和设计模式的生成器模式弄混.其实看英语会比较明显,一个是Builder Pattern,一个是generator.在某种程度上说这也是英文专业名词翻译的大锅了.笑,这也是为什么说程序员要学习英语的一个例证了.生成器的实现其实很简单,就是处理大数据集合,不是使用数组一次性放到一个原创 2022-05-23 15:28:26 · 200 阅读 · 0 评论 -
php的redis单例模式
php的redis单例模式最近刚好有点时间重构了一下公司的代码,某些地方用设计模式重构了一下.刚好注意到redis的获取的生成很适合用单例模式.当然主要原因还是公司的代码框架但是用的比较老,只能自己手写设计模式.单例模式单例模式自然不用过多科普.因为是php并且公司目前不需要额外考虑多线程之类的问题,所以这里使用的是最简单的模型.参考的是这篇文章php单例模式和设计模式:可复用面向对象软件的基础这本书里面单例的设计.如果是其他的场景下,单例模式还需要考虑多线程安全的加锁问题,请自行搜索代码这里面原创 2022-05-19 17:19:21 · 808 阅读 · 0 评论 -
python函数装饰器和php函数装饰器
python函数装饰器和php函数装饰器python里面有一类特别有趣的语法糖名叫装饰器(Decorator).也就是给定的特定的语法结构允许对函数进行包装,添加特定的功能.如果只看名字,可能会觉得和其他面向对象语言中的装饰器模式相似.可以参考装饰器模式(装饰设计模式)详解装饰器的讨论装饰器在python3.0之前并不是一个语法糖( syntax candy).一开始,他是因为python的语法特性而被人借用的常见开发方式.原因在于python糅杂了函数式编程的语法.允许吧函数作为参数参数和返回值使原创 2022-05-18 16:38:37 · 285 阅读 · 0 评论 -
关于mysql查询优化的再思考
数据库优化经验原创 2022-02-13 10:40:39 · 528 阅读 · 0 评论 -
实战优化php和mysql:记录一次实际项目中优化数据库访问
实战优化php和mysql:记录一次实际项目中优化数据库访问本期中某个项目中下载报名数据模块中,项目经理说正式环境下出现下载过慢的情况,在实际的数据量,一个文件需要半分钟甚至一分钟的时间生成,从而导致超时,甚至下载失败的情况.因为这个模块是之前已经离职的同事写的,因此我去接手还是有点茫然的.最后在我的优化下将下载时间优化到10s以内.还是要有点小收获.因此写下这一篇文章.同步环境首先是把线...原创 2019-01-22 11:36:59 · 761 阅读 · 0 评论 -
代码优化技巧2:循环优化
代码优化技巧2:循环优化本文算不上什么很有独创性的东西,在很多人的文章和书籍中都有看到,比如深入理解操作系统在的5/4,韩天峰老师的谋篇<php需要聪明人的语言>也提到过一些相关内容.在大多数的可以允许过程化编程的语言中,循环永远是经常用到的结构.但是每一次使用循环我们都要尤其小心谨慎,避免循环出现的低效率.我们在这里使用一个有趣的例子.避免在循环条件中使用函数考虑下面一个...原创 2018-12-25 23:59:19 · 393 阅读 · 0 评论 -
从源代码级别的角度看php var_dump和echo的区别
从源代码级别的角度看php var_dump和echo的区别上周五同事出了一道有趣的题目,题目是这样:答案很神奇是1,而一旦把echo替换成了var_dump,则这是一个null.根据文档我们可以看到unset转换当然是什么造成echo和var_dump的区别呢,这就要从源代码级别进行讨论了.本文并不会像某些文章一些罗列大量的二者的区别,想要看这种面试题,请自行打开搜索引擎.变量的...原创 2018-12-16 20:44:57 · 1678 阅读 · 0 评论 -
php redis 实现全页缓存系统
php redis 实现全页缓存系统之前的一个项目说的一个功能,需要在后台预先存入某个页面信息放到数据库,比如app的注册协议,用户协议,这种.然后在写成一个php页面,app在调用接口的时候访问这个页面.当时我就发现一个问题,这些协议往往几个月才会修改一次,而每一次用户查看这些协议的时候,nginx都会重新从数据库读取文件,速度会很慢慢了.如下图m_about.php是我生成的数据页,...原创 2018-10-24 12:03:30 · 3622 阅读 · 1 评论 -
lnmp 安装php-fileinfo
之前在本地虚拟环境下使用的是lnmp的通用配置,可惜lnmp下省略某些默认插件.这一次在使用某个composer插件下发现需要安装使用php-fileinfo插件.下载源代码检查当前的php版本.使用php -info | grep 'php’命令查询当前的php版本,发现时php 7.1.7,然后需要去下载对应的代码(如果当时安装的时候保留了源代码也可以直接用).注意这里官网只给了最新版...原创 2018-10-15 11:54:14 · 448 阅读 · 0 评论 -
从浏览器输入URL会发生什么2?FPM(FastCGI Process Manager)概述
从浏览器输入URL会发生什么2?FPM(FastCGI Process Manager)概述在之前的文章中我们稍微提到了了cgi和fastcgi在服务器端响应请求.作为一个php程序员,必然要学习fpm,在现在lnmp架构下fpm几乎成了必然使用的地方,所以写下本片博客,作为一个概述,粗略的讨论fpm.更详细的内容,请参考官网.===cgi AND fast CGI首先我们给出一个cg...原创 2018-10-02 22:09:48 · 233 阅读 · 0 评论 -
php+redis实现排行榜demo
php+redis实现排行榜demo本周上班因为任务分配的原因,跑回去写redis去了.本周继续复习redis,感觉对于redis的实践开始有了新的认识.核心依旧是作为缓存,而不是拿关系型数据库来用.扯远了,本周又写了一些模块,其中比较好用的是使用redis来实现排行榜,确实好用,快的多,要比传统上使用mysql,存入到数据库中(当然如果能有效利用缓存也能吧速度提升一个数量级,但是还是不如...原创 2018-09-17 11:57:41 · 8951 阅读 · 3 评论 -
避免在循环中访问数据库,一次对于PHP代码的优化经历
避免在循环中访问数据库,一次对于PHP代码的优化经历这次是在上班过程中发生的事件,我隔壁的同事正在写一个功能.这个功能简单的描述是这样的:从数据库几个表中获取数据,导入到excel,类似的功能,实际上之间我们之前已经完成过不少,然而这一次却遇到的问题.那就是代码运行的太慢了.跑了三十几秒代码自己断开了代码原来的代码段很长,所以我做了简化 省略号表示还有其他代码,实际上原来的代码更为...原创 2018-07-29 22:33:31 · 4422 阅读 · 0 评论 -
php 将excel文件写到word中
利用php写word的方法,网上主导的方法有三种:1.利用微软提供com组件.我个人是不推荐的,首先是com组件的文档繁杂,用起来也不是很顺手.2.利用第三方的wordphp的库,这个库的github网址如下点击打开链接功能非常强大的一个库,而且不仅支持word格式,还支持pdf等多种格式.如果你需要的功能很多,可以考虑利用这个库.3.利用html为中介生成mh原创 2015-09-16 11:44:14 · 834 阅读 · 0 评论 -
php 变量
#一、PHP的变量定义:变量用于存储值,比如数字、文本字符串或数组:string /integer /double /array /object 命名规则:<span style="font-size: 14px;">1、PHP的变量名是区分大小写的。 2、变量名必须以$开头 3、变量名开头可以是下划线转载 2015-08-28 09:55:05 · 411 阅读 · 0 评论 -
php可变参数实现
编者按:最开始想到的办法是利用数组的方式,或者是利用C语言的方法利用宏,不过在网上发现了php的实现方法不同,就把文章转载过来首先,我们需要编写一个PHP函数来计算两个数的和,可以如下编写:/** *计算两个数的和,并返回计算的结果 * @param number $a * @param number $b * @return number */function sum($转载 2015-08-25 10:19:49 · 1153 阅读 · 0 评论 -
PHP 数组和字符串互相转换实现方法
PHP 中由于数组和字符串这两种变量类型是如此常用,以至于 PHP 具有两个函数,可以在字符串和数组之间互相进行转换$array=explode(separator,$string); $string=implode(glue,$array);使用和理解这两个函数的关键之处是分隔符(separator)和胶合符(glue)关系。当把一个数组转换成一个字符串时,将会转载 2015-08-24 15:33:23 · 1888 阅读 · 0 评论