随笔分类 - php代码
php代码笔记
摘要:微信的SDK太古老了,本人经过各种百度优化了一下。 <?php namespace app\models\wechat; class wxBizMsgCrypt { private $token; private $encodingAesKey; private $appId; /** * 构造函数
阅读全文
摘要:使用HTMLPurifier插件过滤。 在项目根目录安装: composer require ezyang/htmlpurifier 过滤: /** * 防止xss攻击,过滤参数 * */ public function removeXss($string){ // 生成配置对象 $cfg = \H
阅读全文
摘要:用redis的分布式锁可以解决商品超卖的问题,简单事例(基于YII2框架): /** * @desc 加锁方法 * * @param $lockName string | 锁的名字 * @param $timeout int | 锁的过期时间 * @return 成功返回identifier /失败
阅读全文
摘要:本事例代码基于Laravel框架。 1.首先你的微信商户号需要开通微信H5支付 2.你的支付网站的域名需要在微信商户号后台配置 3.回调地址需要在外网中能打开并且能接受post请求,可以用postman检查一下。 事例代码: 支付类: <?php namespace App\Http\Control
阅读全文
摘要:在一些场景下,一些数据需要用户登陆才能获取。因为我们可以做模拟登陆。 //模拟登陆 function loginPost($url, $cookie, $post){ $ch = curl_init(); //初始化curl模块 curl_setopt($ch, CURLOPT_URL, $url)
阅读全文
摘要:1.安装抓包工具(filder)和模拟器(夜神模拟器),可参考博文:https://blog.csdn.net/weixin_42223833/article/details/110009432。安装包和详细配置都有。 注意:抖音有ssl验证,夜神模拟器安装xposed和JustTrustMe之后,
阅读全文
摘要:微信公众号发红包需要满足以下条件: 1.开通微信商户号 2.开通现金红包功能(注意开通要满足条件) 文档地址:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_3&index=2 php发红包demo: c
阅读全文
摘要:最近有一个网页需要用到微信分享。 按照官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#63 使用最新的:http://res.wx.qq.com/open/js/jweixin-1.6.0.j
阅读全文
摘要:抢购、秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等。 抢购、秒杀实现很简单,但是有些问题需要解决,主要针对两个问题: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 第一个问题,对于PHP来说很简单,用缓存技术就可
阅读全文
摘要:开发过程中,我们经常会与接口打交道,有的时候是调取别人网站的接口,有的时候是为他人提供自己网站的接口,但是在这调取的过程中都离不开签名验证。 我们在设计签名验证的时候,请注意要满足以下几点: 可变性:每次的签名必须是不一样的。 时效性:每次请求的时效,过期作废等。 唯一性:每次的签名是唯一的。 完整
阅读全文
摘要:一般使用TP框架,都要设置默认读取index.php,直接在nginx配置文件中加入以下代码就好: if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.ph
阅读全文
摘要:首先需要安装PHPExcel类,自行百度安装。然后自定义开发: <?php namespace service; use PHPExcel_IOFactory; use PHPExcel; use service\JsonService as Json; use think\Request; cla
阅读全文
摘要://生成密码 function sp_password($pw, $pre) { $decor = md5($pre); $mi = md5($pw); return substr($decor, 0, 12) . $mi . substr($decor, -4, 4); } //生成随机数 fun
阅读全文
摘要:// 获取客户端IP地址 function get_client_ip() { static $ip = NULL; if ($ip !== NULL) return $ip; if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode
阅读全文
摘要:搭建后台的时候一些常用的类归纳。基于TP,有些类是要用到PHPMailer等扩展,自行git下载即可。 /** * 发送邮件 * @param $email * @param $title * @param $content * @param null $config * @return bool
阅读全文
摘要:MySQL中的UTF8编码每个字符只支持最大3字节,而emoji是4个字节的,不能直接存储进去,所以,需要将emoji转换一下。 这边提供一个将4个字节的utf8编码转成&#xxxxxx;的方法: $content = preg_replace_callback('/[\x{010000}-\x{1
阅读全文
摘要:平时有用到的无限分级方法归纳: /** * 无限分级类 * @author Administrator * */ class Tree { //组合一维数组 public static function unlimitForLevel($cate, $html = '├─', $pid = 0, $
阅读全文
摘要:微信昵称特殊字符串过滤,只需一段简单代码: $nickName = preg_replace('/[\xf0-\xf7].{3}/', '', $nickName);
阅读全文
摘要:以下是本人使用redis的场景和对应示例代码: 1.redis连接和常用函数 $redis = new Redis(); //连接redis服务器 $redis->connect('127.0.0.1', 6379); // echo "Connection to server sucessfull
阅读全文
摘要:收集了一批微信小程序的订阅消息,现在要发送 如果直接从数据库中获取,循环发送,数量不多还好,数量一多,将极大占用服务器资源,甚至造成卡顿。 这个时候就要用到redis的队列异步发送了。 直接上代码,本示例使用YII2框架 //获取数据 $subArr=XcxSubscribe::find()->wh
阅读全文