随笔分类 - PHP
摘要:[TOC] # 背景抓包工具charles抓取的请求curl,是这样:```curl -H ':method: POST' -H ':path: /client.action?functionId=signInCouponCenter&clientVersion=8.3.4&build=70302&client=android&d_brand=HUAWEI&d_model=JKM-AL00bxxx...
阅读全文
摘要:[TOC] 做下记录,温故而知新。# 构造函数和析构函数__construct 构造函数 类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。__deconstruct析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。```phpname = "MyDestructableClass"; } function __destruct() { ...
阅读全文
摘要:[TOC] ## 环境系统 ubuntu 16.04php 7.1## 下载扩展:sudo apt-get -y install gcc make autoconf libc-dev pkg-configsudo apt-get -y install libssl-devsudo apt-get -y install librabbitmq-dev## 安装amqp:sudo pecl insta...
阅读全文
摘要:[TOC] 持续更新,记录一些值得关注的问题。# 下列PHP配置项中,哪一个和安全最不相关:() ```A. open_basedirB. register_globalsC. disable_functionsD. file_uploads```open_basedir 可将用户访问文件的活动范围限制在指定的区域 ,通常是其家目录的路径,也 可用符号 "." 来代表当前目录。注意用 open...
阅读全文
摘要:[TOC] # 映射映射,或者射影,在数学及相关的领域经常等同于函数。基于此,部分映射就相当于部分函数,而完全映射相当于完全函数。映射(Map)是用于存取键值对的数据结构(key,value),一个键只能对应一个值且键不能重复。# 实现映射的实现方式可以使用链表或二叉树实现。组成,结点可以在运行时动态生成。形式:单链表、双链表、跳表(redis 集合数据结构就是跳表实现,时间复杂度O(log N))跳表了解:https://lotabout.me/2018/skip-list/# php实现对链表的增删改...
阅读全文
摘要:[TOC] # 扩展安装以php安装swoole扩展为例。## php源码编译安装下载源码包并编译安装```$ wget http://cn2.php.net/distributions/php7-1.0.tar.gz$ tar -zxvf php7-1.0.tar.gz$ cd php7-1.0$ ./configure --prefix=$HOME/php7/book/php7-1.0/out...
阅读全文
摘要:[TOC] # 背景当程序中出现不可预期的错误,比如说除0异常,yii会给我们扔出这个异常信息,由于现在都是读写分离,客户端调你的api,都是协商好的数据格式,如果业务方没有兼容你的异常返回,客户端出现异常错误,影响也挺恶心。再者,写些脚本的时候,出现不可预期的异常没有记到日志中,对于我们排查错误也是大大的麻烦。好在,yii提供错误处理,看看官方文档:[错误处理](https://www.yiic...
阅读全文
摘要:由来 环境:PHP7、Swoole、linux 对聊天室有点感兴趣,对于网络协议有一点一知半解,所以决定借助swoole实现个简单的聊天室,来简单剖析下原理,知道原理以后就可以考虑用其他语言或者自己造轮子写个,当然这是后话。 源码我放置github( https://github.com/Walki
阅读全文
摘要:# phpstorm设置自动同步服务器- Tools->Deployment->Confinguration- 点+号,添加服务器,类型SFTP,输入name点击ok,项目与服务器连接成功!设置服务器...
阅读全文
摘要:场景 web服务器有多台,每台服务器都会存贮自己的session,session无法在多台服务器共享。所以就需要更换session的存贮空间,存贮在一个共用的空间。通常为了读写速度,我们会选择存贮在内存服务上,如redis、mysql的memory存贮引擎等,本文以reddis存贮贯串上下文。 se
阅读全文
摘要:[TOC] <! [TOC] 查看当前操作系统版本信息 cat /proc/version 比如可是使用 help 查看帮助选项。如 进程 ps ps命令用于显示 当前进程 (process) 的状态。 ps [options] [ help] 常见参数: ps ef 显示出的结果: 1.UID 用
阅读全文
摘要:[TOC] # 场景 电商平台想要导出一年的报表数据,数据可能有百万,平常的做法是查出所有数据放到数组或对象中,再进行excel导出,一般情况下,数据不是很多这种是没什么问题,但百万级别的数据一下读到内存中,服务器会一下崩溃,内存溢出。通常情况下也不会做这种需求,产品提出来你可以骂两句怼回去,但老板说我就需要这个功能,你苦口婆心说几句,但是还是要做啊。生成器可以帮我做到这些,理解概念可以看看[这...
阅读全文
摘要:[TOC] # php.ini PHP解释器在 php.ini 文件中配置和调优。web和cli使用的路径不同,如果必要我觉得可以调成一样或者共用。路径一般都在/etc下。 # 内存 考虑每个PHP进程要使用多少内存?确定分配给PHP多少内存? - 共能分配给PHP多少内存? 首先,确定能分配给PHP多少系统内存。例如,我可能会使用一个 Linode虚拟设备,这个设备一共有2GB内存。可是,...
阅读全文
摘要:[TOC] # 作用
PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。
PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。 (1). 为什么会出现php-fpm fpm的出现全部因为php-fastcgi出现。为了很好的管...
阅读全文
摘要:[TOC] # 问题 处理日期和时间要考虑很多因素,比如 日期格式、时区、夏令时、闰年、闰秒和天数各异的月份,自己处理易出错。 PHP5.2.0引入 DateTime、DateInterval和DateTimeZone类,提供简单的面向对象接口,准确创建、处理日期、时间。 # 设置默认时区 php.ini 设置 ``` date.timezone = 'America/New-Y...
阅读全文
摘要:[TOC] composer 遵循PSR准则,解决安装依赖。 # 安装(linux) ``` #下载安装脚本 - composer-setup.php - 到当前目录。 php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" #执行安装过程 php composer-setup.php...
阅读全文
摘要:[TOC]
# 猴子选大王 一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,输出最后那个大王的编号。 ## 指针解决
思考了下,发现数组指针最适合解决这个问题,解决方法:
```php
functio...
阅读全文
摘要:[TOC] PHP5.4.0起,PHP内置了Web服务器。对本地开发是个极好的工具,便捷,无需安装WAMP、XAMP或大新那个web服务器,就能在本地调试了。 启动服务器 进入项目的根目录下,执行命令 或者 直接指定网站根目录 浏览器打开 localhost:4000,就可以进入到网站浏览应用。 如
阅读全文
摘要:[TOC] PHP发展这么多年,技术、架构都已经革新,了解现代PHP很重要,最近在看Model PHP这本书,系统的了解下PHP相关的概念。 # 性状 Trait 是类的部分实现(即常量、属性和方法),可以混入一个或多个现有的php类中。 性状有两个作用:表明类可以做什么(接口);提供模块化实现(像是类)。 比如说两个无关的类需要拥有一个共同的方法,继承、接口都不太合理(一是属性不同;二是代...
阅读全文

浙公网安备 33010602011771号