php
大大的林子
努力不一定成功,但是不努力一定很舒服
展开
-
合并两个二维数组某个字段相加的处理方法
$a = array( 0 => [ 'goods_id' => 25, 'stock' =>1, ], 1 => [ 'goods_id' => 2, 'stock' =>3, ] ); ...原创 2022-03-12 17:22:31 · 381 阅读 · 0 评论 -
PHP二维数组根据值反查键值
$modelArr = [ "a" => [ "module" => "a", "meter" => 2, "type" => "pressure", ], "b" => [ "module" => "b", "meter" =...原创 2021-07-22 11:35:46 · 228 阅读 · 0 评论 -
redis 连接报错read error on connection解决
问题描述:用redis作消息队列,php连接redis,用brpop函数消费队列,过了大约60秒连接会自动断开,报错:read error on connection原因分析:查看了下php.ini文件里面有个参数default_socket_timeout = 60,就是这个配置导致redis过60秒会自动断开。这个配置是什么意思?default_socket_timeout是socket流的超时参数,即socket流从建立到传输再到关闭整个过程必须要在这个参数设置的时间以内完成,如果不能完成,那原创 2021-05-25 10:36:31 · 1531 阅读 · 0 评论 -
了解PHP的几种常见的加密方式
常用的几种加密方式md5加密Md5是一种单向的加密技术,不可逆,不能进行解密crypt加密crypt()为单向加密,跟md5差不多一样sha1加密跟md5很像,不同的是sha1()默认情况下返回40个字符的散列值,传入参数性质一样,第一个为加密的字符串,第二个为raw_output的布尔值,默认为false,如果设置为true,sha1()则会返回原始的20 位原始格式报文摘要sha...原创 2020-03-15 17:52:42 · 509 阅读 · 0 评论 -
替换html里面的图片相对路径地址为绝对路径
项目要用到使用正则函数preg_replace_callback把图片相对路径替换为绝对路径,自己写的函数记录下来以备以后复用 function pregReplaceImg($content,$prefix) { $contentAlter = preg_replace_callback('/src=[\'\"]([\s\S]*?)[\'\...原创 2019-10-31 23:52:08 · 2166 阅读 · 0 评论 -
Thinkphp5.1里面如何使用workerman
之前一直用swoole,最近研究workerman,于是composer安装composer require workerman/workerman在Thinkphp控制器里面写一段测试代码<?phpnamespace app\workerman\controller;use think\Controller;use Workerman\Worker;class Inde...原创 2019-08-07 18:44:56 · 6828 阅读 · 0 评论 -
php购买业务流程通用设计思路
php购买业务流程通用设计思路设计表商品表商品ID数量价格用户账户表用户ID账户用户商品表商品ID购买流程大致流程为:商品展示,如果商品下架或者库存不足,关闭购买入口或者阻断用户进入。进入购买入口,选择相应的数量和商品,通常也会有相应的商品属性。点击购买,进入支付页面。点击支付,判断账户金额够不够,不够...原创 2019-08-02 10:29:16 · 577 阅读 · 0 评论 -
记PHP7.1中出现PHP Warning: Illegal string offset 'tagname'报错
调试一个陈年老代码,提示PHP Warning: Illegal string offset ‘tagname’。代码如下:$this->c_att = new quick_attribute();$this->c_att->items['tagname'] = ($this->charToLow ? strtolower($tmpvalues[0]) : $t...原创 2019-07-20 14:36:17 · 2078 阅读 · 1 评论 -
使用imagettftext()函数执行失效的原因排查
登陆使用到验证码死活加载不出来,排查之后发现imagettftext函数执行失败。该函数作用是把文字写入图片当中,常用于做验证码图片。使用该函数需要安装GD库,但是安装之后依然不能使用,报以下错误:PHP Fatal error: Call to undefined function imagettftext()原因是由于安装GD库的时候没有安装freetype的支持。freetype不是...原创 2019-07-17 17:36:11 · 3869 阅读 · 0 评论 -
简单理解正则的捕获组和反向引用
捕获组正则使用()捕获组,只有()捕获组形式才会记录匹配的值。非捕获组则只匹配,不记录 $str = 'abccde'; $regex = '/\w(\w)/'; if(preg_match($regex, $str, $matches)){ echo "<pre>"; print_r...原创 2019-07-19 17:19:50 · 505 阅读 · 0 评论 -
swoole实例化对象的两种写法
最近在深入学习swoole看到官方文档里面实例化对象有两种写法,两种写法都能执行成功。一种是这样$server = new \Swoole\WebSocket\Server("0.0.0.0", 9501);另外一种是这样$server = new \Swoole_WebSocket_Server("0.0.0.0", 9501);第一种很容易理解,就是一个全局的命名空间加载的...原创 2019-05-24 16:20:30 · 664 阅读 · 0 评论 -
php flock文件锁通俗讲解几种锁的用法
使用共享锁(读锁)LOCK_SH,如果是读取,不需要等待,但如果是写入,需要等待读取完成。 使用独占锁也叫排它锁(写锁)LOCK_EX,无论写入/读取都需要等待。 LOCK_UN,无论使用共享/读占锁,使用完后需要解锁。 LOCK_NB,当被锁定时,不阻塞,而是提示锁定,直接拒绝理解PHP文件锁关键是理解LOCK_SH和L...原创 2019-05-06 16:08:23 · 664 阅读 · 0 评论 -
Thinkphp5.1里面使用Memcached的bug
在tp5.1里面使用缓存数据库memcached,我安装了memcached拓展。填好配置之后报以下错误Call to undefined method Memcached::has()。查看代码发现tp5.1里面使用了has这个函数 protected function setTagItem($name) { if ($this->tag) { ...原创 2019-04-19 13:29:19 · 1231 阅读 · 0 评论