php
文章平均质量分 54
be.be
少年,充满激情,勇敢的大步向前,享受生活的得失,直面璀璨的岁月
展开
-
docker php安装扩展
Docker php安装扩展步骤详解前言此篇,主要是演示docker-php-source , docker-php-ext-install ,docker-php-enable-docker-configure 这四个命令到底是用来干嘛的,它们在PHP容器中都做了哪些事情。很多人很不理解在Dockerfile中安装PHP扩展的时候总是出现这几个命令,本篇就就是为你揭开这些命令的神秘面纱而准备的,所有案例都是本人自己运行过的。Docker 中的PHP容器安装扩展的方式有通过pecl方式安装通过p转载 2021-05-29 23:13:31 · 525 阅读 · 0 评论 -
设计模式-观察者模式
简说设计模式——观察者模式一、什么是观察者模式 观察者一般可以看做是第三者,比如在学校上自习的时候,大家肯定都有过交头接耳、各种玩耍的经历,这时总会有一个“放风”的小伙伴,当老师即将出现时及时“通知”大家老师来了。再比如,拍卖会的时候,大家相互叫价,拍卖师会观察最高标价,然后通知给其它竞价者竞价,这就是一个观察者模式。 对于观察者模式而言,肯定有观察者和被观察者之分。比如在一个目录下建立一个文件,这时系统会通知目录管理器增加目录,并通知磁盘减少空间,在这里,文件就是观察者,目录管理器和磁盘就.转载 2021-05-27 21:17:58 · 104 阅读 · 0 评论 -
高并发场景下的订单和库存处理方案
高并发场景下的订单和库存处理方案前言之前一直有小伙伴私信我问我高并发场景下的订单和库存处理方案,我最近也是因为加班的原因比较忙,就一直没来得及回复。今天好不容易闲了下来想了想不如写篇文章把这些都列出来的,让大家都能学习到,说一千道一万都不如满满的干货来的实在,干货都下面了!介绍前提:分布式系统,高并发场景商品A只有100库存,现在有1000或者更多的用户购买。如何保证库存在高并发的场景下是安全的。预期结果:1.不超卖 2.不少卖 3.下单响应快 4.用户体验好下单思路:下单时转载 2021-05-06 03:01:42 · 4077 阅读 · 2 评论 -
PHP如何把word文档转换为html
方法一: 通过PHPOffice(推荐)1.require phpoffice/phpword /* 通过composer安装 PHPOffice需要科学上网或者用中国镜像:https://www.phpcomposer.com/*/ 2: 安装成功可看到 vendor文件夹 3: 使用方法 : require 'vendor/autoload.php'; $phpWord = \PhpOffice\PhpWord\IOFactory.原创 2021-03-27 09:59:45 · 1033 阅读 · 0 评论 -
TARS-php微服务
伴随着微服务架构的快速发展,各种开发语言各种类型的微服务开发框架陆续出现,在近日举办的 PHPCon 大会上,来自开源微服务框架 TARS 核心开发组的梁晨,为开发者分享了 TARS-PHP 在 TARS 构建微服务生态中扮演的角色。梁晨同时也是 TARS-PHP 项目的主要负责人,以下是本次演讲全程的整理。大家好,接下来 45 分钟的时间,我想跟大家聊聊 TARS 作为微服务平台本身有什么优势,同时也想让大家看到,TARS-PHP 核心开发组在这一年中,不断演进 TARS-PHP,将其融入 PHP 生转载 2020-05-28 16:28:10 · 967 阅读 · 0 评论 -
php7
php7和PHP5对比的新特性和性能优化fish_study_csdn 2018-05-22 16:37:40 8001 收藏 3展开1 抽象语法树( AST) 1)在 PHP5中,从 php 脚本到 opcodes 的执行的过程是: Lexing:词法扫描分析,将源文件转换成 token 流; Parsing:语法分析,在此阶段生成 op arrays。2)PHP7 中在语法分析阶段不再直接生成 op arrays,而是先生成 AST,所以过程多了一步: ...转载 2020-05-14 10:30:10 · 140 阅读 · 0 评论 -
PHP-算法-最少比较次数获取最大值最小值
<?php//获取最大、最小function getMinMax($arr){ $n = count($arr); if ($n ==1 ) return [$arr[0],$arr[0]]; //最小、最大 //初始化最大、最小 if ($n > 1) { if ($arr[0]>$arr[1]) { $max = $arr[0]; $min = $arr[1];.原创 2020-05-10 09:07:14 · 1066 阅读 · 0 评论 -
php-数据结构-二叉树的构建、前序遍历,中序遍历,后序遍历,查找,打印
<?php/*** 结点*/class Node{ public $data; //结点数据 public $left; //左孩子 public $right; //右孩子 public function __construct($data, $left=null, $right=null) { $this->data = $data; $this->left = $left; $this->r...原创 2020-05-09 19:22:54 · 180 阅读 · 0 评论 -
php-算法-树-B+树的实现
php-树-B+树的实现原创 2020-05-09 14:57:51 · 352 阅读 · 0 评论 -
PHP-树-红黑树的实现
PHP-树-红黑树的实现原创 2020-05-09 14:56:47 · 380 阅读 · 0 评论 -
PHP-树-平衡二叉树(AVL树的实现)
PHP-树-平衡二叉树(AVL树的实现)原创 2020-05-09 14:56:14 · 119 阅读 · 0 评论 -
php-树-最优二叉树(赫夫曼树)
php-树-最优二叉树(赫夫曼树)原创 2020-05-09 14:55:38 · 104 阅读 · 0 评论 -
PHP-树-二叉排序树的实现
PHP-树-二叉排序树的实现原创 2020-05-09 14:54:39 · 134 阅读 · 0 评论 -
php -树-二叉树的实现
php -树-二叉树的实现原创 2020-05-09 14:53:47 · 275 阅读 · 0 评论 -
php -最大堆、最小堆构建,堆排序
php -最大堆、最小堆构建,堆排序原创 2020-05-09 14:52:37 · 432 阅读 · 0 评论 -
cgi fastcgi php-fpm
CGI早期的Web服务器,只能响应浏览器发来的HTTP静态资源的请求,并将存储在服务器中的静态资源返回给浏览器。随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服务器与外部应用程序(CGI程序)之间数据互通,于是出现了CGI(Common Gateway Interface)通用网关接口。简单理解,可以认为CGI是Web服务器和运行其上的...转载 2020-05-06 14:15:19 · 187 阅读 · 0 评论 -
PHP编码规范-PSR1、psr2 /psr3 psr4
PHP编码规范-PSR1详细见php规范官网:https://www.php-fig.org/psr/psr-1/PSR-1:基本编码标准标准的这一部分包括应被认为是确保共享PHP代码之间实现高水平技术互操作性所需的标准编码元素。本文档中的关键字“必须”,“不得”,“必须”,“应”,“应禁止”,“应”,“不应”,“推荐”,“可以”和“可选”是按照RFC 2119中...翻译 2020-05-04 16:26:24 · 1672 阅读 · 0 评论 -
php5 apache 配置
php5.5+apache2.4安装 环境搭建华仔呵呵呵呵 2016-02-24 18:15:44 6336 收藏展开在进行php开发之前需要搭建php和apache结合的开发环境。具体步骤如下:一、下载安装包1.1、php5.5.6下载链接 http://windows.php.net/download/#php-5.5推荐 V11 x64,也就是64bit的。1.2、ap...转载 2020-05-04 16:16:44 · 394 阅读 · 0 评论 -
apache php的几种运行方式
apache php的几种运行方式PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的,工作过程(1)当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送化支持PHP的WEB服务器。(2)WEB服务器接受这个请求,并根据其后缀进行判断如果是一个PHP请求,WEB服务器从硬盘或内存中取出用户要访问的P...转载 2020-05-04 16:11:35 · 2832 阅读 · 1 评论 -
php lua 实现单位时间内ip访问限制
<?php$redis = new Redis();$redis->connect('127.0.0.1', '6379', 2.6); //ip 端口 超时时间$script = <<<EOF -- param key expire limit local iplimit = redis.call('INCR', KEYS[1]) ...原创 2020-05-02 11:48:38 · 288 阅读 · 0 评论 -
php zookeeper实现分布式锁
php实现zookeeper分布式锁半人猛犸 2019-08-15 19:23:58 438 收藏 3展开php实现zookeeper分布式锁zookeeper和redis实现分布式锁的对比:1、redis分布式锁,其实需要自己不断去尝试获取锁,比较消耗性能;zk分布式锁,获取不到锁,注册个监听器即可,不需要不断主动尝试获取锁,性能开销较小2、如果是redis获取锁的那个客户端bu...转载 2020-04-30 16:49:09 · 456 阅读 · 0 评论 -
phpize及其用法
什么是phpize及其用法在使用php的过程中,我们常常需要去添加一些PHP扩展库。但是重新对php进行编译是比较蛮烦的,所以这时候我们可以使用phpize对php进行添加扩展。并且phpize编译的扩展库可以随时启用或停用,比较灵活。使用方法extention为要挂载的扩展包 wget extension.tar.gz下载相应的扩展包并解压。 cd extensi...转载 2020-04-30 14:40:16 · 205 阅读 · 0 评论 -
PHP7 新特性
话说当年追时髦,php7一出就给电脑立马装上了,php5和php7共存,也是立马写了个超级耗时间的循环脚本测了一番,确实php7给力很多,然后也是注意了一些新增的特性与一些丢弃掉的用法。由于php升级乃头等大事,公司近期才打算升级,所以之前一直只能私下欣赏php7带来的快感,负责升级的小伙伴搞了个分享,还挺全的,此处mark一下,当作笔记。主要研究问题:1.PHP7带来的好处2.PHP7...转载 2020-04-26 09:46:25 · 162 阅读 · 1 评论 -
php7和PHP5对比的新特性和性能优化
php7和PHP5对比的新特性和性能优化php7和PHP5对比的新特性和性能优化1.抽象语法树(AST)AST在PHP编译过程作为一个中间件的角色,替换原来直接从解释器吐出opcode的方式,让解释器(parser)和编译器(compliler)解耦,可以减少一些Hack代码,同时,让实现更容易理解和可维护2.Natice TLS:线程数据共享安全,开启一个全局线程用...转载 2020-04-26 09:40:23 · 290 阅读 · 0 评论 -
PHP——底层运行机制与原理
PHP——底层运行机制与原理1 PHP的设计理念及特点 多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保证了一个请求挂掉不会对全盘服务造成影响,当然,时代发展,PHP也早已支持多线程模型。 弱类型语言:和C/C++、Java、C#等语言不同,PHP是一门弱类型语言。一个变量的类型并不是一开始就确定不变,运行中才会确定并可能发生隐式或显式的类型转换,这种机制的灵活性...转载 2020-04-26 09:17:56 · 125 阅读 · 0 评论 -
PHP四大主流框架的优缺点总结
PHP四大主流框架的优缺点总结ThinkPHPThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP开发框架。它使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,各方面都比较人性化,熟悉J2EE的开发人员相对比较容易上手,适合php框架初学者。 ThinkPHP的宗旨是简化开发、提高效率、易于扩展,其在对数据库...原创 2020-04-26 08:47:19 · 538 阅读 · 0 评论 -
PHP 实现N阶矩阵相乘
<?php/** * php实现n阶矩阵相乘 * * 5 2 4 2 4 24 34 * 3 8 2 x 1 3 = 20 40 * 6 0 4 3 2 24 32 * 0 1 6 19 15 * */class matrix{ private $a; private $b; ...原创 2020-04-25 23:30:12 · 970 阅读 · 0 评论 -
php实现逆转数组
/** * 当然php系统函数本身实现了翻转 array_reverse() */class algorithm{ /** * 逆转数组,非交换 * @array_reverse */ public function reverse(array $arr){ $res = []; $count = count($arr);...原创 2020-04-25 21:57:42 · 255 阅读 · 0 评论 -
php语言优劣
深入解读PHP语言的优劣PHP优劣势 PHP的优点: 1、第一个是简单,PHP比其他任何的语言都要简单,入门的话PHP真的是可以一周就入门。C++有一本书叫做《21天深入学习C++》,其实21天根本不可能学会,甚至可以说C++没有3-5年不可能深入掌握。但是PHP绝对可以7天入门。所以PHP程序员的数量非常多,招聘比其他语言更容易。 2、PHP的功能非常强大...转载 2020-04-25 17:59:06 · 778 阅读 · 0 评论 -
php多线程
PHP 高级编程之多线程转自:https://my.oschina.net/neochen/blog/2943541.多线程环境安装1.1.PHP 5.5.9安装PHP 5.5.9https://github.com/oscm/shell/blob/master/php/5.5.9.sh ./configure --prefix=/srv/php...转载 2020-04-17 22:11:39 · 910 阅读 · 0 评论 -
PHP线程安全和非线程安全
PHP线程安全和非线程安全1、线程安全线程安全就是能够在多线程环境下正常工作。这取决于web server在处理并行访问时是否用到多线程。2、非线程安全不论在什么平台、用什么web server,只要是用cgi/fastcgi方式运行PHP,都用非线性安全linux必然配合非线程安全的PHP,IIS则要用线性安全的PHP。Apache有两种运行模式:如果用fastcgi模式,则...原创 2020-04-17 21:47:52 · 866 阅读 · 0 评论 -
php-通过数组结构实现LRU算法
class Lru{ private $lru_arr = []; //lru存放数组 private $len; //最大限制长度 public function __construct($len){ $this->len = $len; } //生成hash key,对应array_shift后 数字索引会自动从0开始 pu...原创 2020-03-30 12:58:50 · 262 阅读 · 0 评论 -
PHP -算法-二路归并
/** * 二路归并排序 */function merge(array $arr){ $k = 1; $n = count($arr); while ($k<$n){ $arr = mergeOne($arr, $k); $k*=2; } return $arr;}/** * 1次归并执行过程处理 * @param ...原创 2020-03-29 23:41:18 · 170 阅读 · 0 评论 -
php-有序数组合并后仍有序
function sortMerge($arr1,$arr2){ $l1 = count($arr1); $l2 = count($arr2); $res = []; $i=0; $j=0; while($i<$l1 && $j<$l2){ if($arr1[$i]<$arr2[$j]) ...原创 2020-03-29 22:18:52 · 242 阅读 · 0 评论 -
PHP-希尔排序
function shell(array $arr,array $gaps=[]){ if(!$arr) return $arr; //测试用,默认指定间隔数组,正常传入即可 $gaps = [10,5,2,1]; $l_g = count($gaps); $l = count($arr); for($i=0;$i<$l_g;$i+...原创 2020-03-29 22:17:27 · 183 阅读 · 0 评论 -
php-兔子问题,斐波那契数列
/** * 兔子问题(斐波那契数列) * 问题说明:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, * 假如兔子都不死,问第n个月的兔子总数为多少对 * @param int $n * @return int $total */function rabbit($n){ if($n<3) return 1; ...原创 2020-03-29 22:11:08 · 584 阅读 · 0 评论 -
php-约瑟夫问题
/** * 约瑟夫问题:例子,30个报数,1-9,到9的人剔除,依次循环 * @param $n 总人数 * @param $spare 最后剩余的人数 * @param $spe 报数1-$spe * @return $del 去掉 */function yuesefu($n,$spare,$spe=9){ $t_n = $n+1; $del=[]; ...原创 2020-03-29 22:06:46 · 109 阅读 · 0 评论 -
php-选择排序
function select(array $arr){ if(!$arr) return $arr; $l = count($arr); for($i=1;$i<$l;$i++){ $small = $i-1; for($j=$i;$j<$l;$j++){ if($arr[$j]<...原创 2020-03-29 21:58:51 · 117 阅读 · 0 评论 -
PHP-算法-冒泡排序
function bubble(array $arr){ if(!$arr) return $arr; $l = count($arr); $flag = 1; for($i=1;$i<$l && $flag;$i++){ for($j=0;$j<$l-$i;$j++){ $fla...原创 2020-03-29 21:57:36 · 89 阅读 · 0 评论 -
扫描二维码登录原理
那它是如何实现的呢?我们来简单研究下。(以淘宝网二维码登录为例)首先,任何一个二维码表示的都是一串字符串。我们打开淘宝登录页面:https://login.taobao.com/member/login.jhtml,展示了如下二维码:通过草料二维码解析出这张二维码表示的是如下字符串:https://login.m.taobao.com/qrcodeCheck.htm?lgToken...原创 2020-02-06 17:43:57 · 12072 阅读 · 0 评论