php-小记
文章平均质量分 89
海-LLH
程序需要一步一步往上走,希望热爱程序的我们可以一起看山下的风景!
展开
-
高性能日志:如何提升日志性能避免 IO 瓶颈?
是当系统处理大量磁盘 IO 操作的时候,由于 CPU 和内存的速度远高于磁盘,可能导致 CPU 耗费太多时间等待磁盘返回处理的结果。对于这部分 CPU 在 IO 上的开销,我们称为 “iowait”。iowait 怎么查看呢?如果你用的是 Linux 系统或者 Mac 系统,当你在执行一项很耗费磁盘 IO 的操作时,比如读写大文件,通过 top 命令便可以看到。如下图所示:CPU 开销示意图其中的 2.6 wa 便是 iowait 占用了 2.6% CPU。那么,这种 CPU 开销对性能会有什么转载 2021-01-12 11:07:44 · 5468 阅读 · 1 评论 -
php curl 传参文件
下面重点说一下 php curl 传参的文件的几种方法先解释一下 aaa";filename="xxxaaa 是对方要接收的参数";filename=" 是固定格式xxx 自己定义的名字,随意定义要上传的文件资源在服务器本地php 5.5之前 'filename' => "@"."./hll.jpg", // 5.5之前 这个方法没有试过 php 7.0 $postBody = [ 'aaa";filename="xxx' => curl_f原创 2020-05-14 15:45:00 · 773 阅读 · 0 评论 -
declare
declareticks=1Example #1<?php // 例子1 function doTicks () { echo 'Ticks'; } register_tick_function('doTicks'); declare(ticks = 1) { for ($x = 1; $x ...原创 2018-05-24 18:39:19 · 1666 阅读 · 0 评论 -
自动加载 spl_aotuload_register
spl_autoload_registerspl_autoload_register — 注册给定的函数作为 __autoload 的实现bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )参数autoload_f...原创 2018-05-31 17:36:31 · 325 阅读 · 0 评论 -
final 详解
Final 关键字PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。<?php final class Foo { public function doFoo() { return "foo->doFoo...原创 2018-06-01 09:30:30 · 978 阅读 · 0 评论 -
对象赋值(对象引用)
对象赋值(对象引用)&lt;?php// 分配的对象 Class Object{ public $foo="bar"; }; $objectVar = new Object(); $reference =&amp; $objectVar; $assignment = $objectVar// 在 PHP 5,一个对象变量已经不再...原创 2018-06-01 09:39:43 · 500 阅读 · 0 评论 -
Phalcon 注入了Redis服务,生效了,但是使用的时候没有提示
解决办法 01、在model 中定义一个获取Redis 的服务public function getRedis(){ $redis = new \Phalcon\Di::getDefault()->getShared("redis"); return $redis;}定义这个发现 redis 服务可以用,但是使用的时候还是没有提示在该方法的前面增加注释 ...原创 2018-07-09 09:39:30 · 2041 阅读 · 0 评论 -
phpstrom 免费翻译
01、Translate 免费的翻译Preferences(Settings) > Plugins > Browse repositories... > 搜索并找到"Translate" > Install Plugin.02、Translation 这是需要第三方的appid 与 appkeyPreferences(Settings) > Plu...原创 2018-07-18 10:27:15 · 703 阅读 · 0 评论 -
GET POST 区别
get 方式 长度受限制?正确的应该理解为:浏览器限制了get 传参的长度 以及 服务器限制了 get 参数的长度当参数长度过长: apache: Request-URI Too Long The requested URL's length exceeds the capacity limit for this server. ng...原创 2018-09-14 14:32:42 · 213 阅读 · 0 评论 -
使用生成器yield导出百万数据
设备centos 1核2G成果10W【10列】 数据导出 数据大小20M 左右,时间花费5分钟50W【10列】 数据导出 数据大小96M 左右,花费12分钟100W【10列】 数据导出 数据大小192M 左右,花费23分钟注意的坑excel坑既然是导出数据,大伙们当然马上想到了excel格式了,多方便查看数据呀,然而万万没想到excel也是有脾气的呀! 表数据限制:Exc...原创 2018-11-08 18:27:49 · 4112 阅读 · 0 评论 -
rap2 安装
安装rap2准备工作1、安装 node2、git3、redis4、mysql请确保上面的都安装完成由于 客户端:rap2-dolores 是建立在 服务端:rap2-delos 基础上,因此先搭建服务端应用服务端 delos 环境搭建下载服务端代码git clone https://github.com/thx/rap2-delos.git配置文件目录:rap2-de...原创 2018-12-22 11:04:50 · 3531 阅读 · 3 评论 -
php switch break
先看下面一段代码switch ($type){ case 1: echo 1; case 2: echo 2; case 3: echo 3; break; default: echo 'default';}当type =1 时你们考虑一下会输出什么 会输出 123 原因就是因为 break结论:开始时没有代码被执行。仅当一个 case 语句中的...原创 2019-08-28 11:47:25 · 731 阅读 · 0 评论 -
phalcon 模型前置操作不生效
在一次添加测试账号的时候,不小心吧一条主键id为0的数据添加下去了。导致数据库的所有前置操作都不生效。MMP只要把那条数据删掉即可原创 2018-06-12 14:42:52 · 347 阅读 · 0 评论 -
Trait
Traittrait看上去更像是为了代码的复用而写的一个小插件,它类似于include可以用use放在类中间,让trait里面定义的方法作为class的一部分本身不能直接实例化作用域Trait的作用域在引用该Trait类的内部是都可见的(public、private 等等都可以)可以理解为use关键字将Trait的实现代码Copy了一份到引用该Trait的类中...原创 2018-05-24 17:17:13 · 2296 阅读 · 0 评论 -
interface、abstract
abstract(抽象类)定义1、PHP 5 支持抽象类和抽象方法(在前面加 abstract 修饰)2、定义为抽象的类不能被实例化3、任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。4、定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现A、继承一个抽象类的时候,子类必须定义父类中的所有抽象方法、假如子类没有全部实现抽...原创 2018-05-24 16:53:20 · 183 阅读 · 0 评论 -
php 安装fileinfo扩展
第一步 找到 phpize 的目录,一般是在你安装好了的php目录下 我的是在 /usr/local/php/bin/phpize第二步 找到你安装的php的源文件目录 我之前是用oneinstack 一键安装的php环境;所以我在 /home/package/oneinstack/src/ 目录下解压 tar -zxvf php-5.6.31.tar.gz第三步 进入php目原创 2017-10-20 16:03:06 · 28272 阅读 · 0 评论 -
php 递归 把文件下的文件都遍历出来
php 把文件下的文件都遍历出来// 遍历文件夹下面的所有文件function read_dir($dir){ $files=array(); $dir_list=scandir($dir); foreach($dir_list as $key => $file){ if($file!='..' && $file!='.'){ if原创 2017-11-23 10:52:06 · 470 阅读 · 0 评论 -
linux shell 执行 php cli 的问题
1、权限不足 没有执行权限2、shell 脚本中执行的php路径是否为相对路径3、设置开机启动、脚本中必须是绝对路径4、如果脚本中会运行数据库 脚本设置开机启动必须延迟 不然脚本会出错开机启动 /etc/rc.local原创 2018-02-03 09:43:50 · 1394 阅读 · 0 评论 -
nginx 负载均衡 及 配置问题 01
在没有实操负载均衡的时候,觉得负载均衡好流弊,完全不懂。 当技术上升到现在,觉得麻蛋,负载均衡原来也就是一个简单的转发配置。 心里顿时一万只 CNM 从心窝里飞翔. 话不多说 贴代码配置下面这些配置都在 http 里面upstream nginx_fu { server 120.79.107.5:80 weight=20; server 119.23.1...原创 2018-03-08 16:13:01 · 224 阅读 · 0 评论 -
一个小型的架构图
想学习画图工具在这里: https://www.processon.com原创 2018-03-22 16:34:19 · 914 阅读 · 0 评论 -
nginx、php、FastCGI、php-fpm 运行过程及原理
一、用户对动态PHP网页访问过程用户浏览器发起对网页的访问:http://192.168.1.100/index.php用户和nginx服务器进行三次握手进行TCP连接(忽略包括nginx访问控制策略、nginx防火墙等访问控制策略)第一步:用户将http请求发送给nginx服务器第二步:nginx会根据用户访问的URI和后缀对请求进行判断1.例如用户访问的index.ph...转载 2018-04-19 10:33:59 · 1787 阅读 · 0 评论 -
Nginx FastCGI的运行原理
看此篇文章 强烈 建议先看 nginx、php、FastCGI、php-fpm 运行过程 回头看此篇文章一定会收益匪浅FastCGI1.介绍CGI全称通用网关接口 Commmon Gateway Interface用于HTTP服务上的程序服务通信交流的一种工具,CGI程序须运行在网络服务器上。传统CGI接口方式性能较差,由于每次HTTP服务器遇到动态程序需要重启解析器来执行...转载 2018-04-19 10:49:36 · 2068 阅读 · 0 评论 -
error:1490086
打印 openssl 信息$ php -r “print_r(openssl_get_cert_locations());”Array( [default_cert_file] => /usr/local/openssl/ssl/cert.pem [default_cert_file_env] => SSL_CERT_FILE [default_cert_dir] => /原创 2018-04-25 14:13:27 · 341 阅读 · 0 评论 -
php 闭包(匿名函数)
php的闭包(Closure)也就是匿名函数。是PHP5.3引入的。闭包的语法很简单,需要注意的关键字就只有use,use意思是连接闭包和外界变量。$a = function() use($b) {}闭包的作用01、依据闭包实现一个容器class Di{ private $factory; public function set($id, $va...原创 2018-04-25 23:14:02 · 277 阅读 · 0 评论 -
php类中的$this、static、const、self、final
先看一个例子看输出什么 <?php class A{ const PI = "a_PI"; static public $m="a_m"; public $mm = "a_mm"; private $PI = 'A_PUBLIC_PI'; protected $GI = "A_GI"; ...原创 2018-05-10 14:18:03 · 309 阅读 · 0 评论 -
public(公有),protected(受保护)或 private(私有)
访问控制(可见性)对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。被定义为 公有的类成员 可以在任何地方被访问。被定义为 受保护的类成员 则可以被其自身以及其子类和父类访问。被定义为 私有的类成员 则只能被其定义所在的类访问 位置 private protected publ...原创 2018-05-13 08:52:56 · 8269 阅读 · 0 评论