随笔分类 - php
php技术讨论
摘要://要转换的负数$num = -10;//将负数转换为无符号整数的十六进制表示$hex_str = sprintf('%08X', $num & 0xFFFFFFFF);//将十六进制字符串转换为十进制数值$original_num = hexdec($hex_str);//如果最高位是1,表示是负
阅读全文
摘要:方法一:curlFile 客户端 $filePath = 'head.txt'; // 创建 CURLFile 对象 $file = new CURLFile($filePath); // 创建 cURL 资源 $ch = curl_init(); // 设置 cURL 选项 curl_setopt
阅读全文
摘要:#connect to AMQP broker at example.comuse PhpAmqpLib\Connection\AMQPStreamConnection;$amqp = new AMQPStreamConnection('example.com', 5672, 'user', 'pw
阅读全文
摘要:关键知识点,用key的长度位数来决定使用AES的编码位数: AES-128-CBC = mcrpyt(cipher MCRYPT_RIJNDAEL_128 + key 16位 + iv 16 位 + mode MCRYPT_MODE_CBC)AES-192-CBC = mcrpyt(cipher M
阅读全文
摘要:常驻进程-RSA加密公钥私钥RESOURCE没有释放导致内存暴涨内存泄露往往是比较难查找的问题,借助bcc 的memleak工具可以初步判断是哪个类库导致的,知道了哪个类型,可以大概判断是业务流程中哪一部分的代码导致的例如:RSA加密导致内存暴涨用BCC工具会看到类似 /lib64/libcrypt
阅读全文
摘要:环境: php-version:php7.2 redis-server:5.0.9 php-redis扩展:5.0.0 php-框架:thinkphp3.2 redis-stream中文绍 1,实现的效果: 一个stream,一到N个消费组,1到N个消费者 2,redis封装: /** * stre
阅读全文
摘要:function pregReplaceChinese($str,$replace="*"){ if(empty($str)){ return $str; } else { return preg_replace("/[\x{4e00}-\x{9fa5}|\x{9FA6}-\x{9FFF}|\x{3
阅读全文
摘要:虚拟场景: 假设有一们平台,需要用某种道具兑换话费吧,那么话费一般是第三方服务,怎么样保证这上兑换流程安全不损失呢? 逻辑很简单:用户(消费道具)-》平台(扣除道具)-》话费平台(充值话费)话费平台不管成功或者是失败都要响应平台,以做下一步逻辑处理,如果失败,道具要返回给用户。 小明拿到需求之后很快
阅读全文
摘要:业务描述: 无限层级分享返利,每层按照流水和一定的返利系数逐层往上返利,相信大家在处理此类业务的时候多多少少有点头大,横向的层级,和纵向的关系都需要考虑,涉及到数据存储和大量计算,不管是整个树的宽度还是高度,随着时间的推移都将很是庞大,在业务实际运算中,一般会限制层级的计算,因为如果层级计算过多,顶
阅读全文
摘要:一,环境 thinkphp5.0.24 php 7.2 mongo mongodb 安装不再缀述,主要讲下tp5如果集成mongodb可以正常的查询,如果不清楚,要花费不少时间去排查。 二,下载think-mongo 1.*版本 直接用composer require topthink/think-
阅读全文
摘要:一,官方文档说明入口 https://opendocs.alipay.com/open/282/105996 二,红包说明 前期准备不再缀述,就是设置公钥(最好采用证书模式)这样即支持现金红包,又可以支持活动红包。 三,活动红包具体步骤 前期准备,应用申请及开放平台设置(关键是 公钥证书 设置) A
阅读全文
摘要:一,适用于场景,异步,回调,非实时性业务场景,支持队列数据失败重传,多进程,实时延时队列,重试队列,死信队列,并针对队列数据进行监控。 二,相关概念 QUEUE模块:消息队列push pop模块。 PHP进程: 针对队列数据起的PHP多个进程 文件锁:用来控制进程的启动与重启 REDIS队列:数据载
阅读全文
摘要:一,官方文档说明入口 https://opendocs.alipay.com/open/20190111144811460526/quickstart 环境配置 php + thinkphp3.2 二,红包步骤 前期准备,应用申请及开放平台设置(关键是 公钥证书 设置) App<==>后端(php)
阅读全文
摘要:一,修改配置文件 Library/ThinkPHP/Conf/convention.php SESSION_TYPE => "redis" 二,添加session redis驱动 Library/ThinkPHP/Think/Session/Driver/Redis.class.php <?phpn
阅读全文
摘要:今天整理一点PHP原生实现进程的方式,死循环。针对进程一般要借助于定时去检查进程的重启与销毁,也可以依赖于文件,或者配置自我实现重启。 而php一般的死循环实现方式如下: 1 function doAnalisis($param1,$param2){ 2 $runFile = ROOT_PATH."
阅读全文
摘要:一,其实针对文件的读取,PHPExcel提供了很多格式的文件,可以看下底层封装,支持各种常用和不常用的文件类型支持。,针对不同的类型都有相应的文件处理类 PHPExcel_Reader_xxxx.php 1 public static function createReaderForFile($pF
阅读全文
摘要:一,针对某些表格列算计算汇总数据的操作: 1 //模拟数据 2 $data = array( 3 array("id"=>1,"name"=>"张一","age"=>15,"address"=>"广东1","salary"=>8000), 4 array("id"=>2,"name"=>"张二","
阅读全文
摘要:PHPExcel提供了一个强大的操作表格的php类库,之前都是copy使用,简单的使用,对于复杂的表格的处理还是难以上手。 一,针对PHPExcel是封闭好的类开,一般有一个基本的类需要包含或者导入到当前的业务代码中,这个类就是PHPExcel.php,针对这个类,大家只需要关注构造函数那堆初始化各
阅读全文
摘要:一,环境 windows + php7.2 二,方法实现 $config = array( 'config' =>'D:\php\wwwroot\php\extras\ssl\openssl.cnf', //安装PHP7会自带这个配置文件 'digest_alg' => 'sha256', //可以
阅读全文
摘要:在使用phpcurl post数据的时候,当数据超过1k的时候,会失败,不会直接发起请求,而是分为两步: 一,发送一个请求,包含“Expect:100-continue”头域,询问SERVER是否愿意接收 二,接收到SERVER返回的 100-continue应答以后,才可以继续POST数据 解决办
阅读全文