0%

内容概述

php使用rabbitMQ做消息队列,这是一种常见的异步的工作方式,在很多的工作场景都能遇到,在阅读该文章之前,需要提前了解rabbitMQ的工作原理以及下面的几种工作模式,这样更有助于阅读这篇文章,以下代码是通过自行封装对amqplib的各种模式的使用,便于记忆,在此记录。

composer安装扩展

1
2
composer安装
composer require PHP-amqplib/PHP-amqplib
阅读全文 »

PHP实现的敏感词过滤方法,以下是一份过滤敏感词的编码。有需要可以参考参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* @todo 敏感词过滤,返回结果
* @param array $list 定义敏感词一维数组
* @param string $string 要过滤的内容
* @return string $log 处理结果
*/

function sensitive($list, $string){
$count = 0; //违规词的个数
$sensitiveWord = ''; //违规词
$stringAfter = $string; //替换后的内容
$pattern = "/".implode("|",$list)."/i"; //定义正则表达式
if(preg_match_all($pattern, $string, $matches)){ //匹配到了结果
$patternList = $matches[0]; //匹配到的数组
$count = count($patternList);
$sensitiveWord = implode(',', $patternList); //敏感词数组转字符串
$replaceArray = array_combine($patternList,array_fill(0,count($patternList),'*')); //把匹配到的数组进行合并,替换使用
$stringAfter = strtr($string, $replaceArray); //结果替换
}
$log = "原句为 [ {$string} ]<br/>";
if($count==0){
$log .= "暂未匹配到敏感词!";
}else{
$log .= "匹配到 [ {$count} ]个敏感词:[ {$sensitiveWord} ]<br/>".
"替换后为:[ {$stringAfter} ]";
}
return $log;
}
阅读全文 »

服务端

Notify.php

1
2
3
4
5
6
//获取通知消息
public function getNotifyCount()
{
$msg = db('message_logs')->where('isscan',0)->count();
RestfulTools::restData($msg); //这里是封装好的json_encode方法
}

前端

notify.js

1
2
3
<span class="am-icon-envelope-o"></span> 消息 <span class="am-badge am-badge-warning" id="msgCount"> 
{$msgCount} //这是是通过tp的 assign方法分配过来的变量,作为初始值
</span>
阅读全文 »

2022年,看好好多人在写总结、感悟,我也趁热打铁记录下自己的感想。可能大部分都会讲到疫情,当然我也会,这一年的不平凡确实刻骨铭心,可能在很多年后回想起这一年发生的事都还会记忆犹新,在此也算是记录下历程,以后再来回味。

持续不断的疫情

2022年是第三年的疫情,上半年来讲相对于其他时间都还比较轻松一些(重庆区域),大家该忙的忙,该玩的玩,也没太在意这事,直到11月份来临,大面积疫情的爆发,重庆市区开始了长达7天的静默,不能上班,不能上学,每天还要做核酸,时刻还得观察着健康码的情况;那段时间看到最为疯狂的就是大家抢菜,超市完全是一哄而空,所有人都在为抗争疫情做准备,也可以说都是在苟且。

再往后面到12月初,全国都大面积爆发,我们连续在家办公了2周多,政府开始出台解封政策,全面开始新型对抗疫情:所有场所不再看健康码、不再考体温、不再封闭区域,那段时间的人们可以说是诚惶诚恐;有的人提倡解封,天天关在家赚不了钱还不如感染了算了;还有的人希望不解封,毕竟目前都还不知道疫情的危害性和后遗症,不知道放开后是什么样的结果;

阅读全文 »

ElasticSearch安装

Docker镜像拉取

1
2
3
docker search elasticsearch

docker pull elasticsearch:7.7.0

本地创建es挂载目录

1
2
3
4
5
mkdir /data/elasticsearch/data

mkdir /data/elasticsearch/plugins

mkdir /data/elasticsearch/config
阅读全文 »

设计模式在php开发中用途还是非常多,能够使用设计模式并准确选择设计模式将事半功倍的提高开发效率,而且也能提高代码可读性和提升代码解耦度,非常方便以后我们在迭代功能的时候的扩展与重构,不至于看到自己以前写的代码无所适从。

1、单例模式

单例模式:即一个类只被实例化一次,当其他人对其再次实例化时,返回第一次实例化的对象,可以避免大量的new
操作,减少资源的消耗,典型应用于数据库类的实例化。
特点:三私一公 (私有静态属性instance,私有构造方法,私有克隆方法,公有化静态方法getInstance)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php 

class Singleton
{
//私有静态属性
private static $instance;
//私有构造方法,禁止使用new创建对象
private function __construct(){}
//该实例的出口
public static function getInstance(){
if (!isset(self::$instance)) {
self::$instance = new self;
}
return self::$instance;
}
//将克隆方法设为私有,禁止克隆对象
private function __clone(){}

public function say()
{
echo "这是用单例模式创建对象实例 <br>";
}
public function operation()
{
echo "这里可以添加其他方法和操作 <br>";
}
}

// $shiyanlou = new Singleton();
$shiyanlou = Singleton::getInstance();
$shiyanlou->say();
$shiyanlou->operation();

$newShiyanlou = Singleton::getInstance();
var_dump($shiyanlou === $newShiyanlou);
阅读全文 »

安装篇

下载与配置

官网下载地址:https://www.elastic.co/cn/downloads/

找到自己系统对应的版本,本文以Linux系统为例,只阐述单机版安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 添加新用户
useradd els

# 创建一个soft目录,存放下载的软件
mkdir /soft

# 进入,然后通过xftp工具,将刚刚下载的文件拖动到该目录下
cd /soft
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.1-linux-x86_64.tar.gz

# 解压缩
tar -zxvf elasticsearch-7.9.1-linux-x86_64.tar.gz

#重命名
mv elasticsearch-7.9.1/ elsearch
阅读全文 »

正常操作

1、下载composer

1
curl -sS https://getcomposer.org/installer | php

2、将composer.phar文件移动到bin目录以便全局使用composer命令 (重点)

1
mv composer.phar /usr/local/php/bin/composer    // 一定要找到对应的php版本的执行目录bin下面

3、切换国内源

1
composer config -g repo.packagist composer https://packagist.phpcomposer.com
阅读全文 »

本文章以php7.1.31和php7.3.9版本为例进行安装

php7.1.31安装

1.安装依赖包

1
yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

2.下载安装包

1
2
cd /usr/local
wget https://www.php.net/distributions/php-7.1.31.tar.gz

3.解压

1
2
tar -zxvf php-7.1.31.tar.gz
cd php-7.1.31
阅读全文 »