
php
iCheney!
一只不正经的程序猿
展开
-
php多国家不同区号手机号规则验证
多国家多区号手机号码规则验证原创 2022-11-03 14:45:29 · 1158 阅读 · 0 评论 -
Mac M1报错: fatal error: ‘pcre2.h‘ file not found 解决方案
ln -s /opt/homebrew/include/pcre2.h /opt/homebrew/Cellar/php@7.4/7.4.16/include/php/ext/pcre/pcre2.h注意替换版本路径原创 2022-03-22 22:21:25 · 4129 阅读 · 1 评论 -
研究一下红包算法
微信红包算法,做详细解释说明原创 2022-03-07 21:31:24 · 10372 阅读 · 0 评论 -
二维数组根据某个key去重,保留其他数据不变
/** * Notes:二维数组根据某个key去重,保留其他数据不变 * User: Cheney * DateTime: 2021/11/2 17:00 * @param $arrays * @param $key * @return array */ public static function unique($arrays, $key) { $result = []; foreach.原创 2021-11-02 17:02:58 · 333 阅读 · 1 评论 -
php内置函数filter_var验证邮箱、url、ip是否符合格式
函数名:filter_var(PHP 5 >= 5.2.0, PHP 7)filter_var — 使用特定的过滤器过滤一个变量php验证邮箱<?php$email = '123456@qq.com';$result = filter_var($email, FILTER_VALIDATE_EMAIL);var_dump($result); // 返回 "123456@qq.com"php验证url地址<?php$url = "http://www.fyu原创 2020-10-10 17:56:00 · 457 阅读 · 0 评论 -
php令牌桶算法实现接口限流
前端每次请求从令牌桶取走令牌,后端匀速向桶内投递令牌,如果前端取到令牌,则说明这次请求有效,否则让前端再次请求或者等待。避免了大量请求下服务器压力过大导致的崩溃问题。令牌桶类:<?phpclass Token{ private $_max; private $_queue; private $_redis; public function __construct() { try { $this->_原创 2020-05-29 22:15:53 · 1230 阅读 · 0 评论 -
php分割中文字符串(1个字,多个字)
/** * 分割中文字符串 * $str 字符串 * $count 个数 * @param $str * @param $count * @return array */ public function mb_str_split($str, $count) { $leng = strlen($s...转载 2020-05-04 00:18:46 · 1251 阅读 · 0 评论 -
php实现windows、linux互相替换存储路径
/** * 替换存储路径 * @param $path 地址 * @param $storageMap 存储映射 * @param bool $reversal * @param bool $prefix 当配置查询字符串为空时,是否把替换字符串作为前缀加到路径前 * @param string $winLin 输出格式,win:windows,lin...原创 2020-03-31 15:52:01 · 528 阅读 · 0 评论 -
thinkphp5实现QQ第三方登录
开发者认证:https://connect.qq.com/(要单击自己的头像才能进去认证入口,QQ互联的产品多半脑壳有屎)审核通过完大概是这样的:审核通过后可以创建自己的应用:注释:title和网站名保持一致,不然新加应用审核不通过,虽然创建完毕后【还在审核中】会分配给appid和appkey,但是审核中、审核不通过的话分配的appid和appkey都没办法使用,也就...原创 2019-12-31 17:47:53 · 1492 阅读 · 2 评论 -
header('Access-Control-Allow-Origin:*'),理解跨域
1.什么是跨域跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。所谓同源是指,域名,协议,端口均相同,不明白没关系,举个例子:http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)http://www.123.com/index.html 调用 http:...原创 2019-11-11 17:33:43 · 5271 阅读 · 0 评论 -
symlink(): Protocol error
修改.env文件:原创 2019-11-11 16:16:27 · 1314 阅读 · 0 评论 -
利用swoole的websocket编写简单聊天室demo
服务器代码:<?php# 定义clientFds数组 保存所有websocket连接$clientFds = [];# 创建websocket服务$server = new swoole_websocket_server("0.0.0.0", 9300);# 握手成功 触发回调函数$server->on('open', function (swoole_webso...原创 2019-10-28 13:46:40 · 606 阅读 · 4 评论 -
yii在执行swoole的异步服务时如何写日志到文件中,并实时查看写入的日志信息
平时如果要看异步执行完的日志需要kill调swoole进程然后会将日志记录到我们设置的文件中,但是不想每次都去kill进程,然后再重启进程,这样十分繁琐。先看yii手册文档:Class yii\log\Logger所有类|属性|方法|常量继承 yii\log\Logger»yii\base\Component»yii\base\BaseObje...原创 2019-10-25 17:25:07 · 742 阅读 · 0 评论 -
记录(2019年2月4日)解决的小程序中Token交互及用户下单和微信支付问题
最近正在做小程序商城相关的事情,遇到了用户下单-支付的过程,其中遇到了很多bug,踩了很多坑终于跳出来了,在这里做一个总结吧。处理图:流程:// 用户在选择商品后,向API提交包含它所选择商品的相关信息// API在接收到信息后,需要检查订单相关商品的库存量// 有库存,把订单数据存入数据库中 = 下单成功,返回客户端消息,告诉客户端可以支付了// 调用支付接口,进行支...原创 2019-02-04 03:58:01 · 3048 阅读 · 0 评论 -
记录(2019年2月2日)解决的利用ThinkPHP5来开发Restful接口实例问题
最近在做小程序的开发,也看了不少资料,想把一些问题记录下来以便于后续的查阅。其实很多同学都大概知道接口的开发相关,只不过是多少的问题,基于互联网的高效,产品的高效,前后端分离能更好的更快的完成一个产品的上线。在我理解的接口开发是这样:PC Web、小程序、APP等应用中的某个功能要实现必须依赖与于端逻辑处理后的返回结果,例如:点击【查看订单 】按钮实现查看当前用户的所有订单概要,那么要对接到后...原创 2019-02-06 02:06:56 · 1089 阅读 · 0 评论 -
记录(2018年7月2日)解决的树形三级页面循环问题
描述:页面三级树型样式,循环出样式和内容内容:记录2018/7/2日遇到的问题问题表述:后台添加新的输入框、按钮、富文本、单选、多选、等等,则在对应的树的节点的页面位置下形成新的html代码,通过字符串连接,将多个新增的html连接起来。Assessment控制器:/** * 返回新三级树,每个节点新增html字段 * @author Tonny ...原创 2019-02-06 13:33:06 · 366 阅读 · 0 评论 -
记录(2018年5月25日)解决的分离自定义数组元素问题
内容:前段时间遇到一个数组分离的问题,这里做详细记录。 1.前端会传一个数组:$think,格式如下,里面的数据为测试数据。$think = [ 'answer' => [ [ 'name' => '答案', 'fraction' => '正确答案标记', 'tab'...原创 2019-02-06 13:51:34 · 170 阅读 · 0 评论 -
记录(2018年6月9日)面试做的一道读取目录下文件的题以及心得
首先题目大致如下:获取选择的文件目录下的所有文件:按回车键进入下一个文件(语言不限);无奈,想破脑袋我还只只想到了fopen和file_get_contents(只是打开文件,读取文件)回来后反思(其实是不甘心)查找到scandir()和opendir();scandir()如下: 1.首先我们假定路径const getURL = "D:/Tonny/D...原创 2019-02-06 13:58:09 · 184 阅读 · 0 评论 -
捣鼓一下的PHP单例模式
定义:单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。//php的单例模式//要用静态属性//class Test{ private static $_instance...原创 2019-02-06 14:01:40 · 130 阅读 · 0 评论 -
PHP封装自己的DB类实现对数据库的CURD操作(适用于入门学习)
新建一个文件夹包括一下几个文件:mySqlConfig.php、mySqlFunction.php、show.phpmySqlConfig.php: //定义常量,配置自己的数据库相关信息 define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PWD', 'root...原创 2019-02-06 14:27:10 · 953 阅读 · 0 评论 -
记录(2019年2月8日)解决的从网上下载图片并保存本地的问题
说明:因为最近要用到这个从网上下载图片并保存本地的功能,自己在网上看了很多代码思路,然后自己摸索着写了一下相关的功能,在不断的修改中完成了功能的实现,下面具体说明:1.当我们从网络上下载图片到本地文件夹时,最好先检查文件目录是否支持可写,点击文件夹-右键属性,自行修改文件权限,虽然代码中也会设置可写权限,但是确保能完全使用,还是自己先设置一下。代码:/** * PHP将网页上的...原创 2019-02-08 03:41:06 · 257 阅读 · 0 评论 -
记录(2019年3月11日)解决的HTML中textarea文本框内容换行问题
在做物流API接口返回物流信息渲染到文本框的时候,需要对textarea中的内容进行排版,所以找了很多关于textarea换行的解决方法,这里做一个记录。如果返回<br />标签则需要在前端页面中利用JS来替换<br />标签,同时还会受到浏览器兼容问题的影响。 if ($trackingInfo != null) { ...原创 2019-03-11 12:19:13 · 1476 阅读 · 0 评论 -
The requested package npm-asset/xxx could not be found in any version
确保已安装Composer插件。运行命令:composer global require "fxp/composer-asset-plugin:^1.2.0"然后要做的就是添加require-composer.json的部分"bower-asset/fabric": "*"并composer update在控制台中运行命令(在项目文件夹中)...原创 2019-08-08 19:19:21 · 2704 阅读 · 0 评论 -
AOP思想的统一异常处理
在未接触AOP思想的时候,我们会这样来处理我们的异常信息,直接return异常信息"XXX异常",或者直接抛出一个系统或者框架自带的Exception返回给接口的调用方,但是在接触AOP思想了,这种方式就不可取了,并且不便于扩展。最近在做小程序后端,我拿自己的一个例子来举例(这里用的是thinkphp5框架):设计图:1.创建自己的基类BaseException.php<?...原创 2019-02-04 03:27:36 · 989 阅读 · 4 评论