自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常见PHP面试算法题

没有一种排序算法在任何情况下都是最优的,必须根据实际情况选择最优的算法来解决问题算法稳定性:在一组待排序记录中,如果存在任意两个相等的记录 R 和 S,且在待排序记录中 R 在 S 前,如果在排序后 R 依然在 S 前,即它们的前后位置在排序前后不发生改变,则称为排序算法为稳定的

2022-02-11 16:47:46 676

原创 php生成不重复的订单号

<?php /** * 使用雪花算法生成订单ID * @return string * @throws \Exception */ function getNewOrderId(string $prefix = 'wx') { $snowflake = new \Godruoyi\Snowflake\Snowflake(); $swooleSequenceResolver = new \Godruoyi\.

2021-08-02 11:34:36 486

原创 Git :Access denied

执行命令:git config --system --unset credential.helper再进行git操作时,弹出用户名密码窗口,输入即可。如果还是不行1、执行git config --list查看邮箱和用户名2、如果不是自己账号,请分别执行以下命令配置自己用户名和邮箱git config --globaluser.name"xxxx"git config--globaluser.email"xxxx"3、执行命令:git config --system -...

2021-07-26 10:59:06 6900

转载 微信APP支付开发指引

以下是交互时序图,统一下单API、支付结果通知API和查询订单API等都涉及签名过程,调用都必须在商户服务器端完成。如图8.6所示。商户系统和微信支付系统主要交互说明:步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr

2021-07-06 14:43:53 565

原创 微信支付参数规定交易类型trade_type

JSAPI--JSAPI支付(或小程序支付)、NATIVE--Native支付、APP--app支付,MWEB--H5支付,不同trade_type决定了调起支付的方式,请根据支付产品正确上传MICROPAY--付款码支付,付款码支付有单独的支付接口,所以接口不需要上传,该字段在对账单中会出现...

2021-07-06 14:40:31 2747

原创 PHP常用公共方法总结

<?phpif (!function_exists('check_link')) { /** * 地址验证 * @param string $link * @return false|int */ function check_link(string $link) { return preg_match("/^(http|https|ftp):\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?.

2021-07-05 18:10:21 313 2

原创 修改 https 和 http

<?php /** * 修改 https 和 http * @param $url $url 域名 * @param int $type 0 返回https 1 返回 http * @return string */ function set_http_type($url, $type = 0) { $domainTop = substr($url, 0, 5); if ($type) {.

2021-07-05 18:06:22 219

原创 CURL 检测远程文件是否在

<?php /** * CURL 检测远程文件是否在 * @param $url * @return bool */ function curl_file_exist($url) { $ch = curl_init(); try { curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_.

2021-07-05 18:05:45 343

原创 PHP敏感词过滤

<?php /** * 敏感词过滤 * * @param string * @return string */ function sensitive_words_filter($str) { if (!$str) return ''; $file = 'public/system/plug/censorwords/CensorWords'; //文件路径及内容自定义 $wo.

2021-07-05 17:51:57 150

原创 字符串操作

<?php /** TODO 系统未使用 * @param string $string 需要替换的字符串 * @param int $start 开始的保留几位 * @param int $end 最后保留几位 * @return string */ function str_middle_replace($string, $start, $end) { $strlen = mb_strlen($strin.

2021-07-05 17:26:39 53

原创 二维数组去掉重复值

<?php /** * 二维数组去掉重复值 * @param $array * @return array */ function array_unique_fb($array) { $out = array(); foreach ($array as $key => $value) { if (!in_array($value, $out)) { .

2021-07-05 17:04:53 81

原创 PHP获取上个月最后一天

<?php/** * 获取上个月第一天 * @param string $date * @return string */function get_month_first($date){ //获取当前月第一天 $one_day = strtotime(date('Y-m-01, time())); //减去一个月 $last_day = date('Y-m-d, strotime('-1 month', $one_day)); return.

2021-07-05 15:30:33 1157

原创 PHP发送微信订阅消息

<?phpnamespace app\api\controller;use think\Controller;use think\Cache;/** * 微信订阅消息 * Class WxTplMsg * @package app\api\controller */class WxTplMsg extends Controller{ protected $appId; protected $appSecret; protected $error.

2021-06-29 10:01:42 287

原创 Mysql索引类型和索引方法

索引类型mysql索引类型normal,unique,full text的区别是什么?normal:表示普通索引unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uniquefull textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。索引方法一、B

2021-06-25 23:45:45 956

原创 如何让Git记住你的账号和密码

在用户目录下生成文件.git-credential记录用户名密码git config --global credential.helper storegit pull /git push (这里需要输入用户名和密码)

2021-03-09 22:54:52 97

原创 你知道 “缓存穿透”、“缓存击穿”、“缓存雪崩” 吗?

一、缓存穿透

2021-03-07 12:36:34 88

转载 有关PHP方法Trait随记

自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait。Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能。 无法通过 trait 自身来实例化。它为传统继承增加了水平特性的组

2021-03-01 22:24:02 119

原创 缓存失效一致性问题分析及解决方案

一、缓存失效一致性问题处理方案假设业务对数据Key:Hello Value:World有大量的读取和修改请求。线程A向OCS读取Key:Hello,得到Not Found结果,开始向DB请求数据,得到数据Key:Hello Value:World;接下来准备向OCS写入此条数据,但在写入OCS前(网络,CPU都等可能导致A线程处理速度降低)另一B线程请求修改数据Key:Hello Value:OCS,首先执行失效缓存动作(因为B线程并不知道是否有此条数据,因此直接执行失效操作),OCS成功处理了失效请求。

2021-02-25 19:01:52 269

原创 如何快速搭建YApi接口管理平台

1.宝塔安装PM2管理器和MongoDB,为了避免Node版本问题导致安装失败,Node版本选择8.92.安装完成后执行npm install -g yapi-cli --registry https://registry.npm.taobao.org3.进入自己想要部署的目录cd /www/wwwroot/youyapi4.启动安装服务yapi server5.开始部署6.部署成功后,根据输入对应的ip加端口号即可访问7.配置域名访问server{ listen 8

2021-02-23 18:24:29 412

原创 如何处理接口幂等性问题

1.什么是幂等性?在编程中一个幂等操作的特点是其任意多次执行所产生的影响与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变,例如,“setTrue”函数就是一个幂等函数,无论多次执行,其结果都是一样的,更复杂的幂等性是利用唯一交易号(流水号)实现。...

2021-02-02 15:41:46 1473

原创 TP5 日志处理

/** * 写入日志 (使用tp自带驱动记录到runtime目录中) * @param $value * @param string $type */function log_write($value, $type = 'info'){ $msg = is_string($value) ? $value : var_export($value, true); Log::record($msg, $type);}...

2021-01-26 18:25:13 85

原创 PHP 打印调试函数

/** * 打印调试函数 * @param $content * @param $is_die */function pre($content, $is_die = true){ header('Content-type: text/html; charset=utf-8'); echo '<pre>' . print_r($content, true); $is_die && die();}

2021-01-26 18:22:16 82

原创 PHP时间戳人性化

/** * 时间戳人性化转化 * @param $time * @return string */ function time_tran($time) { $t = time() - $time; $f = array( '31536000' => '年', '2592000' => '个月', '604800' => '星...

2021-01-26 18:14:47 90

原创 PHP 获取全局唯一标识符

/** * 获取全局唯一标识符 * @param bool $trim * @return string */function getGuidV4($trim = true){ // Windows if (function_exists('com_create_guid') === true) { $charid = com_create_guid(); return $trim == true ? trim($charid, '{}') : $

2021-01-26 17:17:47 344

原创 如何在GitHub上创建自己的项目

创建一个新的项目名,填写项目名称,描述创建完成后,跳转到下面的页面,下面红框中的网址要记住,在后面上传代码的时候需要使用1.进入项目目录右键git bash2.输入git init如下图所示,意思是当前项目的目录中生成本地的git管理(你会发现当前目录下多了一个.git文件夹)3.git add .这个是将项目所有的文件添加到仓库的意思,如果先添加某个特定的文件,只需把 . 换成这个特定的文件名即可4.输入git commit -m “first commit” 表示你对这次提交.

2021-01-26 17:10:28 1256 1

原创 PHP 类中_initialize()函数与 __construct()函数的区别说明

_initialize()方法是在任何方法执行之前,都要执行的,当然也包括 __construct构造函数。 也就是说如果存在_initialize()函数,调用对象的任何方法都会导致_initialize()函数的自动调用,而__construct()构造函数仅仅在创建对象的时候调用一次,跟其它方法调用没有关系。__construct这里是双划线,而_initialize()函数是单划线如果父子类均有_initialize()函数,则子类覆盖了父类的,如果子类没有而父类有,则子类继承父类的。默认情况

2021-01-26 16:25:11 266 1

原创 PHP 匿名处理处理用户昵称

/** * 匿名处理处理用户昵称 * @param $name * @return string */ function conduct_name($name,$type = 1) { if($type == 1){ return mb_substr($name, 0, 1, 'UTF-8') . '**' . mb_substr($name, -1, 1, 'UTF-8'); }else...

2021-01-19 15:32:16 194

原创 PHP手机号验证

/** * 手机号验证 * @param $phone * @return false|int */ function check_phone($phone) { return preg_match("/^1[3456789]\d{9}$/", $phone); }

2021-01-19 15:30:02 51

原创 PHP验证请求地址

/** * 地址验证 * @param string $link * @return false|int */ function check_link(string $link) { return preg_match("/^(http|https|ftp):\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+[\/=\?%\-&_~`@[\]\’:+!]*([^<>\”])*$/", $li...

2021-01-19 15:25:10 99

原创 PHP身份证验证

/** * 身份证验证 * @param $card * @return bool */ function check_card($card) { $city = [11 => "北京", 12 => "天津", 13 => "河北", 14 => "山西", 15 => "内蒙古", 21 => "辽宁", 22 => "吉林", 23 => "黑龙江 ", 31 => "上海",

2021-01-19 15:05:49 356

原创 PHP过滤昵称中emoji表情

/** * 过滤掉emoji表情 * @param string $str * @return string */ function filter_emoji($str) { $str = preg_replace_callback( //执行一个正则表达式搜索并且使用一个回调进行替换 '/./u', function (array $match) { ...

2021-01-19 14:44:28 114

原创 PHP 使用正则表达式检验价格

正则表达式:/(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/ /** * 价格校验 * @param float * @return bool */ function price_check_exist($str) { if (!$str) return false; return preg_match('/(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.

2021-01-19 14:39:33 399

原创 Composer切换阿里云镜像

一、配置使用1.切换命令:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/2.取消配置:composer config -g --unset repos.packagist3.项目配置,仅修改当前工程配置,仅当前工程使用该镜像地址:composer config repo.packagist composer https://mirrors.aliyun.com/composer/

2021-01-16 18:02:36 965

原创 测试本机电脑网速

在线测试法在浏览器中输入测速网网址(https://www.speedtest.cn/),然后点中间的测速按钮即可。

2021-01-15 18:35:36 898

原创 Linux下htop 安装与使用

一.Htop的使用简介大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件Htop,姑且称之为top的增强版,相比top其有着很多自身的优势。如下:1.两者相比起来,top比较繁琐2.默认支持图形界面的鼠标操作3.可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行4.杀进程时不需要输入进程号等二.软件的获取与安装1.Unbuntu$ apt-get install -y htop2.Debian$ apt-get install htop3.Fedora

2021-01-15 18:31:07 5943 1

原创 PHP 对接快递100随记

1.Controller层<?phpnamespace app\api\controller\user;use app\api\controller\Controller;use app\api\model\Order as OrderModel;/** * 用户订单管理 * Class Order * @package app\api\controller\user */class Order extends Controller{ /** * 获取物流

2021-01-14 15:44:05 241

原创 PHP检查目录是否可写

/** * 检查目录是否可写 * @param $path * @return bool */ private function checkWriteable($path) { try { !is_dir($path) && mkdir($path, 0755); if (!is_dir($path)) return false; ...

2021-01-14 14:58:45 149

原创 PHP删除指定目录下所有文件

/** * 递归删除指定目录下所有文件 * @param $path * @return bool */ private function deleteFolder($path) { if (!is_dir($path)) return false; // 扫描一个文件夹内的所有文件夹和文件 foreach (scandir($path) as $val) { ...

2021-01-14 14:55:28 74

原创 PHP开发微信提现到银行卡

一、实现功能原来的项目新增了从系统中提现到银行卡的功能,根据微信官方文档提示,首先要去微信商户平台开通企业付款这一功能,如果没有开通,或者不会开通的,可以参照我上一篇文章,官方文档二、加载SDK1.微信所提供的官方SDK坑太多,我使用的是GitHub上的一个开源SDKWeChatDeveloper 为开源项目,允许把它用于任何地方,不受任何约束,欢迎 fork 项目。Gitee 托管地址:https://gitee.com/zoujingli/WeChatDeveloperGitHub 托管地址

2021-01-13 16:12:44 1312

转载 微信用户提现功能 显示NO_AUTH | 产品权限验证失败,请查看您当前是否具有该产品的权限(企业付款到零钱 银行卡)

企业付款到零钱一、开通条件需同时满足两个条件,才有开通该功能入口:1、T+0 (T日结算至基本账户),结算商户需满足两个条件:1、入驻满90天, 2、截止今日往回推30天连续不间断保持有交易。2、其余结算周期的商户无限制,可立即前往【商户平台】->【产品中心】申请开通。注:连续30天交易无金额限制,请保持正常交易。今天做分销商城时,当微用户提现 显示NO_AUTH | 产品权限验证失败,请查看您当前是否具有该产品的权限。出现这个问题是因为我们的微信商户平台没有开通“企业付款到用户

2021-01-12 11:21:04 3166

空空如也

空空如也

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

TA关注的人

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