![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
大大大大大宝
这个作者很懒,什么都没留下…
展开
-
PHP设计模式之装饰器模式
我们先看一个列子,很简单,添加一个商品信息,并且输出商品信息/** * 商品 */class Goods{ // 定义商品列表 public $goodList; public function __construct() { $this->goodList = []; } // 添加商品信息 public function addGood($good) { $this->goo原创 2021-09-05 14:31:04 · 214 阅读 · 0 评论 -
PHP设计模式之观察者模式
观察者模式<?php/** * 订单观察者 * Interface OrderObserver */interface OrderObserver{ /** * 每个观察者需要执行的方法 * @param $object * @return mixed */ public function afterOrderSave($object);}/** * 被观察者 * Interface OrderObservable */原创 2021-04-09 18:11:13 · 80 阅读 · 0 评论 -
PHP设计模式之单列模式
单列模式,分懒汉式和恶汉式,但是由于php语法问题,php不支持恶汉式单列三私一公私有静态属性,储存生成的唯一对象私有构造函数,防止外部直接new对象私有克隆函数,防止克隆对象公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例<?php/** * 单利模式(懒汉式) * Class Db * Version : 1.0 * Created on: 2021/4/23 17:33 */class Db{ // 保存对象 private原创 2021-04-23 17:35:48 · 96 阅读 · 0 评论 -
PHP 获取字符串中最长不重复的子串和最长连续子串
有时候面试会问到的一道题目,当然问法可能不一样,最长的连续子串,也是同样的逻辑<?php$string = "cbacmcdaefaeadkqatlmtx";// 获取字符串场地$len = strlen($string);// 最长字符串$maxArr = [];// 临时最长不重复字符串$temArr = [];$index = 0;while ($index < $len) { $char = $string[$index]; $index ++原创 2021-06-09 23:01:34 · 505 阅读 · 0 评论 -
Centos下docker安装kibana
安装完ES,肯定就要安装kibana了,拉去官方最新镜像文件docker pull kibana:7.12.1添加配置文件kibana.ymlserver.name: kibanaserver.host: "0.0.0.0"elasticsearch.hosts: ["http://172.17.0.6:9200"]xpack.monitoring.ui.container.elasticsearch.enabled: true查看docker的ipdocker inspect elas原创 2021-05-22 22:03:50 · 146 阅读 · 0 评论 -
Centos使用Docker安装elasticsearch
查看官网最新版本7.12.1 ,下载镜像文件docker pull elasticsearch:7.12.1创建es文件夹,es下再创建三个目录conf、data、plugins,准备做数据挂载为es文件夹添加777权限(不添加启动时会报错)chmod -R 777 esconf文件夹中添加配置文件elasticsearch.ymlcluster.name: "docker-cluster"network.host: 0.0.0.0http.port: 9200node.name: n原创 2021-05-22 13:47:25 · 254 阅读 · 0 评论 -
Centos下安装Supervisord进程管理工具
yum 直接安装yum -y updateyum install -y supervisor添加到开机自启systemctl enable supervisord启动supervisordsystemctl start supervisord // 启动supervisordsystemctl status supervisord // 查看状态vim /etc/supervisord.conf修改配置文件,去掉注释port改成自己的ip,user和password随便重新载入配原创 2021-05-10 22:29:45 · 149 阅读 · 0 评论 -
Swoole加速laravel框架
下载swool包wget https://pecl.php.net/get/swoole-4.6.6.tgz复制文件到docker文件中,如果没有使用容器则跳过这一步直接安装,注意目录文件地址docker cp swoole-4.6.6 php:/usr/src/php/ext/swoole进入容器内安装swooledocker-php-ext-install swoole安装完毕后查看php --ri swoole在 Laravel 应用中使用 Swoole 之前,先通过 Comp原创 2021-05-08 01:16:30 · 176 阅读 · 0 评论 -
Linux下部署laravel环境
下载composer.pharcurl -sS https://getcomposer.org/installer | php移动 composer.phar,这样 composer 就可以进行全局调用mv composer.phar /usr/local/bin/composer切换为国内镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/更新 composercompose原创 2021-05-07 23:37:12 · 244 阅读 · 0 评论 -
Docker搭建PHP开发环境
直接拉去官方nginx镜像(Dockerfile创建镜像太慢了)docker pull nginx新建nginx的配置文件,准备做映射/docker/nginx/default.confserver { listen 80; listen [::]:80; server_name localhost; root /docker/www/lmrs/public; index index.php index.html; location原创 2021-05-05 15:59:12 · 389 阅读 · 0 评论 -
进制转换
二进制转十进制每个位的数字乘以 2的(位数-1)次方1001 = 1222 + 022 + 02 + 1 = 8+0+0+1 = 9八进制转十进制每个位的数字乘以 8的(位数-1)次方0153 = 0888+188+58+3 = 64+40+3 = 107十六进制转十进制每个位的数字乘以 16的(位数-1)次方0x14A = 11616 + 4*16 + 10 = 256+64+10 = 330十进制转二进制十进制数字除以2,直到商为0,得到的余数倒过来87/2 = 143/2原创 2021-05-03 22:01:26 · 1643 阅读 · 1 评论 -
PHP位运算
运算符名称结果&And(按位与)将把 $a 和 $b 中都为 1 的位设为 1|Or(按位或)将把 $a 和 $b 中任何一个为 1 的位设为 1^Xor(按位异或)将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1~Not(按位取反)将 $a 中为 0 的位设为 1,反之亦然<<AShift left(左移)将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)>>Shift ...原创 2021-04-23 17:02:23 · 126 阅读 · 0 评论 -
PHP-FPM中master和worker进程
敲黑板 最近看了很多文章说是php-fpm中的master进程负责分发请求到woker,这是一个错误的说法哈,master进程不负责分发进程,只负责监控管理woker查看我当前的php-fpm进程kill掉一个woker进程,理应是少一个worker进程的,但是查看到还是5个worker进程,说明我们的master进程帮我们又启动一个worker进程再次kill掉master主进程,如果说是master起到分发请求的作用,那么我现在访问页面应该报错的!但是还是能访问到的,所以说master不负责分原创 2021-04-19 23:46:06 · 364 阅读 · 0 评论 -
PHP 使用静态变量缓存
static静态变量缓存日常开发中,经常使用到缓存来减少数据库的压力,如redis缓存等等方案,其实使用static静态变量,来当作是我们数据的一级缓存也是我们常常使用的一种方案。使用场景: 在一次请求中,某个数据被多次不同的方法来使用,而你不想多次读redis或者db来增加你的消耗,又不想把他当做参数传来传去,这个时候static就是非常好的解决方案。 /** * 获取章节ids * @param $audioId * @return array|mixed原创 2021-04-12 14:50:47 · 367 阅读 · 0 评论 -
PHP获取图片无法识别
PHP获取图片无法识别一次项目中抓取网页图片保存到本地,抓取到的图片无法识别,几经周转发现是图片经过是压缩处理,更换其他方式获取即可public function getCoverBase($imgflag) { if (empty($imgflag)) { return ''; } $strImg = @file_get_contents("compress.zlib://" . $imgflag); //加上图片头信息 $fileBase =原创 2020-07-02 17:18:01 · 225 阅读 · 0 评论 -
中文简体繁体转换
<?phpnamespace api\helpers;/* * define zh convert functions * 2019-10-23 use str_replace for speed * zh_hans_to_zh_hant():简体到繁体转换 * zh_hant_to_zh_hans():繁体到简体转换 * zh():自动判断默认语言和当前语言,根据需要转换...原创 2019-10-23 17:16:11 · 2653 阅读 · 0 评论 -
YII2 条件使用 FIND_IN_SET 表达式查询
在项目种经常会遇见以逗号或者其他符号拼接的id的方式保存数据,这样保存的方式在查询时,我们会用到find_in_set做查询,Yii2 当然也有实现的方法。$tags = new Expression("FIND_IN_SET(:tags_{$tags}, tags)",[":tags_{$tags}"=>$tags]);array_push($where,$tags);...原创 2019-09-23 16:34:06 · 2817 阅读 · 0 评论 -
PHP开发中涉及到emoji表情的处理方法
微信开发免不了,要处理用户输入问题,其中emoji表情是一个很大问题,现有项目中也遇到同样问题,几番周折,总结出以下解决方案,仅供参考/** * 入库前转义 */function userTextEncode($str){ if(!is_string($str))return $str; if(!$str || $str=='undefined') return '';...原创 2018-08-30 15:53:33 · 227 阅读 · 0 评论 -
计算与当前时间的时间间隔
// 返回XX天前,方便前端更好的展示function format_date($time){ $t=time()-$time; if ($t &lt;= 0){ return '刚刚'; } $f=array( '31536000' =&gt; '年', '2592000' =&gt; '月', ...原创 2018-08-06 15:39:28 · 626 阅读 · 0 评论 -
PHP 图片压缩方法
/* * 压缩图片 * 图片压缩类:通过缩放来压缩。 * src图片相对路径∗如果要保持源图比例,把参数src图片相对路径∗如果要保持源图比例,把参数src 图片相对路径 * 如果要保持源图比例,把参数percent保持为1即可 percent=0−1。∗percent=0−1。∗percent = 0-1。 * ratio 图片质量...原创 2018-08-03 17:03:28 · 1059 阅读 · 0 评论