自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 php 递归文件夹

【代码】php 递归文件夹。

2023-02-11 00:21:25 116

原创 笛卡尔积递归过程解析

代码】笛卡尔积递归过程解析。

2022-08-07 20:48:11 128

原创 PHP字符串反转面试题

PHP字符串反转面试题

2022-07-25 14:31:06 151

原创 workerman 端口复用作用

长连接:建议关闭端口复用短连接:建议开启端口复用测试代码如下:

2022-07-02 12:43:18 201

原创 PHP 生成笛卡尔级数据

PHP 生成笛卡尔级数据格式。

2022-06-21 21:57:26 103

原创 递归获取文件夹和文件

效果图:try{ $directories = new FileSystem('C:\Program Files (x86)\Windows NT'); $files = $directories->getFiles(); var_dump($files);} catch (Exception $e) {}class FileSystem{ /** * 文件名称升序 * @var int */ public c.

2022-03-15 22:41:43 669

原创 Socks5 TCP 流量代理

运行:项目地址:https://github.com/twomiao/socks5-proxy

2022-01-11 10:55:53 1455

原创 PHP 实现定时秒级任务,并发执行任务思路

实现思想:1、使用Linux系统闹钟信号,实现秒级定时器。2、通过创建子进程,不会出现任务阻塞的情况,即使是while(1)。3、Linux Crontab 也是这个原理。核心代码:\pcntl_async_signals(true);$flag = true;\pcntl_signal(SIGALRM,function()use(&$flag){ var_dump(\date('Y-m-d H:i:s')); if ($flag) {

2021-11-19 12:39:38 825

原创 Swoole 协程暂停、恢复下载任务原理

run(function () { class Worker { // 正在启动 const STATE_CURRENT_STARTING = 1; // 正在运行 const STATE_CURRENT_RUNNING = 2; // 退出状态 const STATE_CURRENT_QUIT = 3; // 暂停完成 const STATE_CURREN.

2021-09-27 18:38:42 235

原创 PHP 递归获取目录

function dirs($dest){ $d = []; foreach (glob("{$dest}*/") as $k => $dir) { $d[] = $dir; $result = dirs($dir); $d = array_merge($d, $result); } return $d;}$dir = dirs(__DIR__ . '/Lib');//$dir = dirs(__DIR__ .

2021-04-13 11:01:50 98

原创 PHP 动态进程池实现思路

1. 进程间通信使用unixsocket2. 此代码仅供参考实现思路,不可直接使用。3. 思路代码: <?php $pidMap = []; $pidMapStatus = []; for ($i = 1; $i <= 3; $i++) { $pid = pcntl_fork(); if ($pid > 0) { $pidMap[$pid]

2020-11-24 18:41:31 422

原创 无限极递归分类

$addresses = array( array('id' => 1, 'address' => '四川省', 'parent_id' => 0), array('id' => 3, 'address' => '攀枝花', 'parent_id' => 1), array('id' => 4, 'address' => '新都区', 'parent_id' => 2), array('id' => 8, 'add.

2020-11-23 23:04:08 79

原创 inotify 扩展监控文件变化,用于常驻内存开发阶段自动加载代码

<?phprequire_once __DIR__ . '/vendor/autoload.php';// 大概原理如此 ……………………………… 具体还是使用框架提供的吧!!// 监控目录$watch_dir = "/mnt/c/Users/twomiao/desktop/test";// 监控文件夹$directories = new Directories();$dirs = $directories->searchdirectories($watch_dir);$d.

2020-11-05 21:14:44 152

原创 PHP8 单线程下载多个M3U8视频

产生背景:最近身边有位同志说:“你了解M3U8文件???,你能用实现一个下载片儿的神器???”。好家伙!一下就提了两个问题此时我就逐个回答。我还不知道M3U8是什么呢,我通过网络知道这是挺流行的网络视频格式。然后那位同志给了我一个网站,我通过“浏览器-》控制台”发现M3U8居然是个文件,然后下面请求出现了很多.ts结尾的视频片段;此时你说用迅雷下载那肯定不现实,然后我就想到用“世界上最好的语言PHP”来做这个事情。然后开始下面这个项目,我已经测试多个网站均无大问题。产生问题:一个500MB的视频文件,可

2020-10-08 20:11:39 539

原创 wsl 删除Linux子系统

步骤:PS C:\Users\twomiao> wslconfig /l适用于 Linux 的 Windows 子系统:Ubuntu-20.04 (默认)PS C:\Users\twomiao> wslconfig /u Ubuntu-20.04正在注销...PS C:\Users\twomiao>最后:“开始”菜单搜索“子系统名称”,然后删除“Linux子系统”。...

2020-07-07 23:21:58 4676

原创 tp6.0 和 laravel源码为何如此相似????

tp 6.0.2 代码

2020-04-17 17:44:08 2334 2

原创 SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序: 超时错误 [258].

@SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序: 超时错误 [258].题)tp5.0 框架配置Sqlserver,添加:“‘dsn’ => ‘sqlsrv:Server=127.0.0.1;Database=acc’,”即可解决。预览效果...

2019-11-19 17:50:12 12612 1

原创 PHPStorm 2019 版 Xdebug 安装

思路步骤整理:一、下载Xdebug 扩展,添加至php.ini 配置文件二、Chrome for Xdebug helper 插件安装支持 (过于简单,具体请百度)三、PhpStorm Xdebug 配置1、 如何选择适合当前PHP版本的Xdebug 版本呢? 1. 创建PHP文件,添加函数“phpinfo()"查看;复制粘贴到“wizard.php”表单文本框:...

2019-09-02 14:44:19 1570

原创 Hyperf 登录和注册编写,但是感觉自己不适合这个框架~~~

一,前几天我讲解了视图的安装,今天最后一个课程;二,课程内容: 1. 登录接口 ( 思路:验证数据 -> 逻辑验证 -> DB操作 2. 注册接口等价上面三,开始我们的讲解: 1. 先说下不适合自己的原因吧!首先这个框架没有独立验证器,自己就写了一个嘛; 2. 写完独立验证器,风格类似于TP5独立验证器;因...

2019-08-23 21:13:46 2927 1

原创 Hyperf 协程框架实战讲解《视图》

一、Hyperf 协程框架实战讲解《视图》简介:当下基于Swoole 扩展,造的轮子数不胜数;但是主流框架就三个(Swoft 3.5 Star, EasySwoole 2.0+Star, MixPHP v2 1.0+ star),但是我选择了Hyperf 框架;主流框架任选其一就好,自己喜欢哪个框架的风格就选择哪个,深入其一即可。那么我的选择就是Hyperf框架,开始讲解吧!!!不多说了,嘻嘻...

2019-08-19 21:01:35 4491

原创 Ubuntu 18.04.2 LTS sftp 连接失败,个人原因:

1,sshd 连接失败,vim /etc/ssh/sshd_config2,通过命令“/etc/init.d/ssh restart”,重启ssh

2019-07-01 14:25:17 2273

原创 关闭多个子进程Linux命令,便于查找

命令:ps -ef | grep Serve | grep -v grep | cut -c 9-15 | xargs kill -9

2019-06-24 21:49:19 193

原创 PHP递归多维数组转换为一维数组

PHP 递归N级数组,转换为一维数组测试代码:$data = array( '1', ['张三', '账务'], 'name' => [ 'test' => ['t1', 't2', 'list'=>['t4', 't11']] ]);var_dump(arrays_convert_one($data));fun...

2019-06-09 22:39:02 1062

原创 PHP 字节文件转换单位 (Byte, KB, MB, GB, TB)

单位换算// 文件字节大小$byteFile = 5745669164;// 9216 Bytes = 9.000 KBvar_dump(file_convert_unit($byteFile, 'GB', 2));/** * @param $byteFile 文件字节大小 * @param string $unit 9216字节转为 9.000 KB,可选择 [KB, MB...

2019-05-30 21:57:56 1553

原创 Supervisor 管理进程异常退出重启, think/queue 实现异步邮件发送

案例使用背景说下:场景很多说下本文中我们要做什么吧!很多小伙伴不熟悉RabbitMQ 企业级消息队列;我们通过最熟悉的Redis 作为延时队列吧!案例:“实现定时邮件发送,现在我们开始吧!”。一、环境准备: 1. 安装ThinkPHP 5.0 过于简单略过 2. 安装supervisor -- yum install python-setuptools && ea...

2019-05-27 23:34:33 840

原创 Swoole 实现Beanstalkd进程管理器

Jober 工作界面:产生背景:项目中经常会有后台运行任务的需求,比如发送邮件时,因为要连接邮件服务器,往往需要5-10秒甚至更长时间,如果能先给用户一个成功的提示信息,然后在后台慢慢处理发送邮件的操作,显然会有更好的用户体验。当然实际情况远不止这一点,我们可以通过Jober的配合完成 “订单超时关闭、自动评论、QQ邮箱定时发送功能等等”。Jober 是什么通过Swoole 官方提...

2019-05-18 20:28:56 362

原创 SWOOLE 多进程消息系统

场景:适用于大部分消息队列场景,我列举几个常见地方:订单自动取消并归还库存,自动收货,群发邮件,推送微信消息模板,异步邮件发送,会员到期自动取消. . . . . 等等。一、我们开始看下这个消息端系统的实现流程。然后把业务逻辑写在Job类,分别两个方法 [ doJob => 自定义业务, after=> 业务后续操作] 二、Serve-Queue 详细讲解流程:...

2019-04-15 11:42:15 1124

原创 centos 7 安装rabbitmq-server消息中间件

1,打开rabbitmq 官网地址:https://www.rabbitmq.com/install-rpm.html#bintray2,打开PackageCloud这个链接:https://packagecloud.io/rabbitmq/rabbitmq-server/3, 下载对应的rabbitmq-server版本:4,下载对应的erlang 版本:https://pa...

2019-03-21 15:24:31 229

原创 php http_build_query 函数转换为url post data

一次面试编写支付验签接口,当时用http_build_query 转换参数的时候出现了+ 号。当时就很迷惑,后来没办法就很low B 的用foreach 进行拼接出的啦。一、这就是我当时很迷惑的地方,毕竟是支付接口不敢随便瞎整:发现没,出现了加号。因此我就不能再用这个函数进行处理二、通过php.net 手册,知道了原因:发现转换成功了,%20是代表空格的意思。总...

2019-01-19 12:07:14 491

原创 案例讲解$和$$,普通变量和引用变量之间的区别

引用变量和普通变量的区别,通过下面这个案例来告诉大家区别是什么。那我就不多说废话,进入正题。一,当前需求是如图的url ,我只想要根据参数名称获取其值:二,此时肯定有人会说 “ 通过foreach 遍历转换成二维数组来实现”,请接着往下看: 翻阅PHP手册,发现一个函数parse_url(解析url)。这样我们就能轻松实现我们的需求:轻轻松松就拿到了参数部分,如图所示:...

2019-01-07 15:42:39 2239

原创 Swoole 毫秒和秒级定时器封装

    引入官网的话:“使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。”首先我们来看下...

2019-01-07 11:36:10 634

原创 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

  太久没有使用服务器上的数据库, 今天登录发现提示错误信息“Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”。接下来我们就来解决下:1,通过whereis my.cnf 数据库配置文件位置,通过编辑mysql.sock套接字文件位置:注意:通过命令 mkdir -p /tmp/mysql...

2019-01-03 21:23:23 52352 4

原创 ThinkPHP 5.1 Swoole 版本安装

前言:本来已经出现了EasySwoole, Swoft , MixPHP 等Swoole 常驻框架。但由于ThinkPHP 框架在国内使用较多,所以就打算自己安装一下ThinkSwoole 版本。1,第一步按照官网的提示: 命令模式下输入"composer require topthink/think-swoole "命令:提醒: 你可以通过phpinfo() 来定位 php,in...

2018-11-10 10:57:30 3079

原创 MySQL 强大CASE WHEN 语法讲解

1,当前存在这样2张数据表,数据表关系是为,一对多:讲解1:通过平时的LEFT JOIN(左连接),得到的数据结果是这样:讲解2:通过发现数据返回不对,接下来通过CASE WHEN 语法完成:结果:因此就得到了这样每位同学对应的课程的成绩,是不是CASE WHEN 强大啊!...

2018-09-07 14:17:51 5162

原创 PHP XlsxWriter 扩展 生成 Excel 文件完成Excel导出

通过Excel XlsxWriter 扩展生成Excel 文件,通过下面这个方法完成发送到浏览器:public static function download($filename, $showname = '', $content = '', $expire = 180){ if (is_file($filename)) { $length = filesize($...

2018-08-30 10:44:22 1766

原创 libzip.so.5: cannot open shared object file: No such file or directory 错误导致安装PHP扩展失败原因

前言:平时都觉得安装Linux 扩展很简单嘛,结果今天没想到居然卡了半天时间。安装PHP扩展总共失败2次,一次是因为PHP 版本是5.6 过低导致,后来重装LNMP环境成功切换PHP版本为7.2。原本以为就此安装成功,没想到遇见如下情况:1,通过命令 查看PHP 扩展确实已经编译成功,可是我添加到配置文件始终就是报错:2,经过网上各类文章的翻阅,最终得知使用如下命令可以完成,拿我的这个...

2018-08-28 22:16:02 10098

原创 oneinstack 安装的Lnmp 环境,关闭Opcache

前言:因为本人修改了PHP 代码,提交到服务器环境执行,发现代码始终没有更新。并且更奇怪的是要等待一会儿,才会生效更新代码。因此想到可能是opcache 的原因,这种情况就直接关闭opcache 1, 通过phpinfo()函数,就可得知 opcache.ini 路径:2, 通过vim opcache 路径,编辑并修改两个值 【opcache.enable = 0,  opcache_...

2018-08-27 15:50:45 684

原创 Yii 2.0框架 NestedSets 插件完成无限极分类

前言:今天发现RBAC 权限管理,使用一个弹出层加上Ztree 看起来很友好,所以就想到使用Ztree 结合无限极分类。但平时无限极分类挺常用,递归的方式分类过多就会出现内存消耗过大的情况,所以使用了Nestedsets 嵌套结合完成分类。一、通过Composer 安装Nestedset插件到Yii 2.0 框架,使用这条命令“composer require creocoder/yii2-n...

2018-08-24 17:09:26 859

原创 通过案例,讲解PHP static 关键字作用

阐述:使用PHP语言有一段时间了,今天看见某段代码中的static 关键字。突然脑海中想到 static 和 没有static 区别是什么呢?通过案例来讲解,需求是我指定一个目录。统计出这个目录下“有多少个目录数”和“有多少个文件”以及分别显示有哪些“文件夹/ 文件”。1, 这是要获取的目录结构:2, 在此就直接贴代码了,这是“没写static” 关键字运行结果:发现和“源目录”数量和go函数获取...

2018-06-29 11:26:02 1894 2

原创 php 语言 yield 关键字作用

简述:有时候我们需要操作大量数据,比如Excel 这个导出数据的场景。可能几十万记录导出到PHP默认的128 MB 内存不足,当然你可以设置无限制,终究物理内存有限。(今天心情沉闷,有点不开心 ̄へ ̄)1, 创建一个内存数组保存7万数字,代码如下:代码运行结果(设置内存为10MB,无需等待过长时间):2,接下来使用yield 关键字来运行,代码如下:运行结果如下:总结:一次性将数据保存进内存,导致内...

2018-06-25 11:28:57 512 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除