随笔分类 - php随笔
摘要:原理: 1.docker加载windows系统共享目录里面的文件很慢 2.docker加载容器内部目录的文件很快 3.raync同步文件时只会同步有差异的文件,所以同进的时候挺快 步骤: 1.容器中安装 rsync apt-get install rsync 2.将以下两个文件添加到项目的根目录 e
阅读全文
摘要:第一种使用Redis LIST做队列(List的Lpop操作是原子性的) 思路:先在Redis中根据商品数量生成相应的库存队列,当用户抢购商品时先从队列中获取商品,然后再进行下单等相关逻辑处理 实践 生成库存队列 <?php public function fillStock(){ $redis =
阅读全文
摘要:执行命令消息 发送完认证请求之后,服务端返回 OK Response ,然后就可以发送执行命令消息了;报文结构为 例如 其中前四位属于消息头,包含消息体的长度和消息id,消息体部分包括 命令id和执行参数。这里命令id=3表示该命令是 SQL查询请求,后面跟着的是具体执行命令 “select * f
阅读全文
摘要:登陆认证阶段 认证阶段抓包如上图,和初始化握手一样,前四个字节属于消息头,后面的部分属于消息体 。报文的结构图如下: 这里主要设置 用户名 密码 和数据库名这三个参数,其他的使用抓包的默认值即可。用户名和数据库名直接将字符转为十六进制就可以,唯一需要注意的是密码加密部分 官网提供的加密规则如下 SH
阅读全文
摘要:交互过程 MySQL客户端与服务器的交互主要分为两个阶段:握手认证阶段和命令执行阶段。 握手认证阶段 握手认证阶段为客户端与服务器建立连接后进行,交互过程如下: 服务器 -> 客户端:握手初始化消息 客户端 -> 服务器:登陆认证消息 服务器 -> 客户端:认证结果消息 命令执行阶段 客户端认证成功
阅读全文
摘要:服务端 <?php $socket = new Co\Socket(AF_UNIX,SOCK_STREAM,0); $socket->bind("/tmp/server.sock"); $socket->listen(2048); go(function ()use($socket){ while(
阅读全文
摘要:先试用Docker安装 RabbitMq docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -
阅读全文
摘要:interface MConfig { public function getConfig(); } class MysqlConfig implements MConfig { public function getConfig() { // 获取配置 return ['host', 'name'
阅读全文
摘要:平时总使用composer,反而对自动加载的知识有些陌生啦,重新梳理下php中自动加载的知识 首先php中定义一个类当使用的时候需要将包含改类的文件引用进来才可以使用,例如 这种情况下如果类文件少的话还可以,但是如果类文件多的话,一个个去 require 岂不是要烦死 php中给出了两种解决方法:
阅读全文
摘要:先交代下数据表结构 主表(订单表)order数据 其中主键为order_id(订单id) 子表(门票表)order_item数据 主表与子表之间通过 ord_id进行关联 实现:通过通过子表的 type(门票类型)查询主表中的订单编号 第一种尝试: 这种方法可以实现但是在laravel中如果想分页的
阅读全文
摘要:php json_encode() 函数格式化数据时会根据不同的数组类型格式化不同类型的json数据 索引数组时 关联数组时 空数组 索引数组时生成的是数组类型数据,关联数组时生成的是对象类型的数据,空数组返回的是数组类型。但是当碰到同一个字段返回的数组可能是关联数组也可能是空数组时,就会在app端
阅读全文
摘要:<?php class Worker{ public static $count = 2; public static function runAll(){ static::runMaster(); static::moniProcess(); } //开启主进程 public static fun
阅读全文
摘要:先看下我已经安装的php版本 php实现多进程需要安装pcntl模块,这个模块是php官方提供的,所以我们可以在PHP源码中找到,下载 php7.3.7 源码并解压到 /home 目录下,这时我们需要的扩展 pcntl 在 /home/php-7.3.7/ext/pcntl 依次执行以下命令 这里面
阅读全文
摘要:http服务是建立在tcp服务之上的,它是tcp/ip协议的应用,前面我们已经实现了tcp服务,并且使用三种不同的方式连接tcp服务 php中连接tcp服务的三种方式 既然http也是tcp应用层的一种,那么我们直接使用浏览器来连接tcp服务可不可以?答案是可以的,只不过连接之后直接返回给浏览器的信
阅读全文
摘要:今天执行composer的时候看到命令窗口出现的提示里面有的关键性部分带有颜色,于是很好奇研究了一下,在这里记录下来 其实在命令行输出带颜色字体主要是使用的 ANSI 转义字符实现的,我们先看个例子: 显示: 在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码,其格式为: 代表开始设置标签
阅读全文
摘要:这几天使用PHP的爬虫框架爬取了一些数据,发现还是挺方便的,先上爬虫框架的文档 phpspider框架文档 使用方法其实在文档中写的很清楚而且在demo中也有使用示例,这里放下我自己的代码做个笔记 注释:这里需要说明一点,抓取页面数据时我只需要标题和内容的部分,但是存入数据库时我需要使用到另外两个字
阅读全文
摘要:name; $magic->name = "hahaha"; isset($magic->sex); unset($magic->sex); $magic->setName(); Magic::setName(); echo $magic; $magic("mayuan"); $magic_se = serialize($magic); unserialize($magic_se);
阅读全文
摘要:实现拼图滑块验证,我觉得其中比较关键的一点就是裁剪图片,最起码需要裁剪出下面两张图的样子 底图 滑块图 一张底图和一张滑块图,其中底图实现起来比较简单可以使用添加水印的方式直接将一张拼图形状的半透明图与一张底图合并起来就可以啦,但是实现滑块图就不能够直接使用某个php提供的函数来直接实现啦,但是这也
阅读全文
摘要:前两天研究php中的 imagick 扩展的时候,突发奇想实现的一个小功能感觉挺有意思,在这里记录一下: 将一张image图片转化为字符串的形式,先上一张效果图。(运行笔记中的代码需要先安装 php_imagick 扩展 教程可以看这里:PHP扩展之 Imagick安装) ,;+: ,+:. .fL
阅读全文