php
PHP 设计模式极简介绍
工厂方法模式 通过工厂类的方法去创建并返回产品对象。 class Factory { public function create(){ return new Product(); } } class Product { } // 调用过程 (new Factory())->create(); 抽象 ......
PHP二维数组分组
PHP二维数组分组 $result = []; foreach ($prize_list as $item) { $id = $item['id']; if (!isset($result[$id])) { $result[$id] = []; } $result[$id][] = $item; } ......
宿主机套用 docker 容器中安装 PHP 的开发环境
docker 可以把运行环境整体打包,但是在开发时,IDE 往往还要指定宿主机上的PHP 可执行文件,这样,安装php扩展时,要装两遍,比较麻烦.如果在宿主机上运行容器中的命令? 可以借助 docker exec -it <container_name> <command> <args> 命令, 写 ......
PHP 反射机制打印对象
1 <?php 2 /** 3 4 echo Obj::new('Redis'); 5 echo Obj::new('Redis')->method('set')?->isPublic(); 6 7 */ 8 9 class Obj extends ReflectionClass 10 { 11 p ......
PHP Amqp 封装类
1 <?php 2 3 /** 4 * 使用示例 5 #定义名称 6 define('ExchangeName', 'exchange_name_15'); 7 define('QueueName', 'queue_name_15'); 8 define('RoutingKey', 'routing ......
推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言
日历对我们来说,最熟悉的就是阳历和农历,在中国每年都有固定的节日、节气、中国特有传统节日,有些节日是固定的,但是节气这些都需要我们经过一定规则换算出来。 所以,今天给大家推荐一个开源库,它支持阳历、阴历、佛历和道历的日历转换,可以满足我们的所有需求。 **项目简介** = 这是有多开发语言版本、支持 ......
PHP中的AMQP类
# PHP中的AMQP类 标签(空格分隔): php,amqp 官网地址:http://docs.php.net/manual/da/book.amqp.php AMQPConnection AMQPConnection { /* Methods */ // 与AMQP代理建立连接 public b ......
PHP操作RabbitQM
# PHP操作RabbitQM 标签(空格分隔): amqp,php Fanout Exchange 多个queue都可以绑定到exchange,并且每个queue都会接受到消息 producer(client.php) $exchangeName = "exchange_01"; try { $c ......
Linux系统,使用PHP连接ORACLE数据库
首先安装ORACLE的InstantClient环境:在这里下载 因为我需要连接11.2.0.4.0版本的ORACLE数据库,所以选取下载了basic-11.2.0.4.0-1.x86_64.rpm和devel-11.2.0.4.0-1.x86_64.rpm, 使用如下命令安装: rpm -ivh ......
kafka.php
setRebalanceCb(function (RdKafka\KafkaConsumer $kafka, $err, array $partitions = null) { switch ($err) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: // ......
mongo.php
"root", 'password' => "123456", 'db' => "admin" ]); return $manager; } function mongoQuery($manager){ //查询 $filter = ['age' => ['$gt' => 5]]; $options ......
es.php
setHosts(['192.168.133.131'])->build(); //如果es设置了密码 // $es = \Elasticsearch\ClientBuilder::create()->setHosts(['http://username:password@192.168.133.1 ......
PHP地址引‘&’用的两个注意点
# foreach 循环 在foreach循环中经常用取地址的方式来修改循环体 ``` $arr = ['www.baid.com','www.google.com']; //给数组中的字符串拼接https:// //第一种做法 foreach($arr as $key=>$value) { $ar ......
打一个适合自己主机的nginx和php的包
### 创建适配主机的nginx和php的包 ```bash ## 先m01上配置一遍wordpress # 安装nginx,php包 # 官方源安装 vim /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo base ......
php中日期时间字符串可以直接比较大小
# php中的日期时间字符串可以直接比较大小 很多朋友还不知道,一直使用 `strtotime` 转换字符串为时间戳再比较大小。 ```php $time1 = '09:00'; $time2 = '12:51'; $time3 = '22:00'; self::assertTrue($time2 ......
php实现占位符模板替换
# php实现占位符模板替换 对接过微信模板消息,或者阿里大于接口的,应该都知道,三方会给你一些模板,模板里有一些占位符,你只需要按照模板里的占位符填充参数即可。 ## demo,实现一个地址跳转系统 用户提供域名和路径参数,系统配置模板即可,用户传参即可替换。 ```php // 用户提供的参数 ......
[PHP](MD5、sha1)比较漏洞
# PhP (MD5、sha1)比较漏洞(弱比较、强比较、强碰撞) ## 弱比较 md5和sha1弱比较都是利用php解析哈希值以“0E”开头的特性,结果都为0符合参数1的字符串值和参数2的字符串值不相等,但md5值相等。 如:240610708,aabg7XSs,aabC9RqS,s8789261 ......
PHP接入图片文字识别AIP
由于项目的需要,我使用百度的文字识别API,但要注意的是不是百分百可以识别,特别是手写的字体很潦草就很难识别了。 使用文字识别的API: 第一步:新手接入指南 https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjgn3 第二步:接入API 文档:https://a ......
php特性第二天
## 99 ``` array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。 该函数等于多次调用 $array[] = $value。 in_array() 函数搜索数组中是否存在指定的值。(注意:in_array()函数有漏洞 没有设置第三个参数 就可 ......
php特性第一天
[TOC] ## 89 ![image-20230520082935928](./../../AppData/Roaming/Typora/typora-user-images/image-20230520082935928.png) preg_match()返回 pattern 的匹配次数。 它的 ......
关于PHP正则表达式这回事
![image-20230520085418434](./../../AppData/Roaming/Typora/typora-user-images/image-20230520085418434.png) ![image-20230520085427346](./../../AppData/R ......
基于官方php:7.2.34-fpm-alpine镜像构建生产可用镜像
1 了解官方php镜像 Dockerhub 上 PHP 官方基础镜像主要分为三个分支: cli: 没有开启 CGI 也就是说不能运行fpm。只可以运行命令行。 fpm: 开启了CGI,可以用来运行web服务也可以用来运行cli命令。 zts: 开启了线程安全的版本。 选择什么分支的镜像? 一般在生成 ......
制作一个生产环境可用的PHP基础镜像
目录 引言 了解PHP基础镜像 需求分析以及镜像选择 构建准备 最终的Dockerfile 引言 初学docker一定会觉得Dockerfile很难,其实只是无从下手的缘故。最好的学习方法就是看完每个Dokerfile指令的作用,然后不要急着去搞清楚,直接挑选一个你比较熟悉的服务软件动手自己制作一个 ......
基于官方镜像定制php-fpm容器
PHP官方docker镜像分类 php:-cli php:-apache php:-fpm php:-alpine 回到目录 制定适合生产环境的镜像 为何要定制 官方镜像缺少常见扩展 以php:8.0.8-fpm-alpine3.13为例 定制步骤 新建目录以/root/docker为例 mkdir ......
centos7安装erlang、rabbitmq以及php扩展
# centos7安装erlang、rabbitmq以及php扩展 标签(空格分隔): liunx,php 安装Erlang 版本:el7 erlang-20.3.8.25 erlang-20.3.8.25-1.el7.x86_64.rpm 1. 下载 wget --content-disposit ......
php反序列化逃逸
之前就对字符串逃逸这一块理解的不是很深刻,下面通过一位师傅的博客来进一步深入理解一下有关php字符串逃逸的相关内容。 贴上师傅的博客地址:https://blog.csdn.net/qq_45521281/article/details/107135706、 **先来说一下什么是字符串逃逸,就是我们 ......
PHP 获取无限级下级ID 无层级
PHP 获取无限级下级ID 无层级 非递归 删除会员处有误,修复后上传记录, PHP 获取无限级下级ID 无层级 非递归 删除会员处有误,修复后上传记录, PHP 获取无限级下级ID 无层级 非递归 删除会员处有误,修复后上传记录, PHP 获取无限级下级ID 无层级 非递归 删除会员处有误,修复后 ......
PHP用PhpOffice->PhpSpreadsheet导出excel
phpexcel由于版本陈旧性能低下官方放弃维护转而开发PhpSpreadsheet 用了最新得psr标准因而 对php版本不向下兼容需要注意!。 PhpSpreadsheet是一个用纯PHP编写的库,提供了一组类,使您可以读取和写入不同的电子表格文件格式PhpSpreadsheet提供了丰富的AP ......
PHP 检查字符或者字符串 是否仅包含指定类型的字符 ctype 系列函数
$strings = array('AbCd1zyZ9', 'foo!#$bar'); foreach ($strings as $testcase) { if (ctype_alnum($testcase)) { echo "The string $testcase consists of all ......
PHP Warning: PHP Startup: redis: Unable to initialize module
redis已安装,且已经在php中安装了redis.so,但升级php版本后不能使用原来的redis.so扩展,需要重新编译安装phpredis。今天安装后重启php-fpm时出现了以下错误: [root@kermit etc]# php-fpm restartGracefully shutting ......