
PHP随笔
PHP随笔
程序员若风+
这个作者很懒,什么都没留下…
展开
-
如何简单实现高性能点赞?【呕心力作】
实现具体的逻辑有不同的方案,具体选择的方案需要根据业务实际情况来进行考虑。所以能够一个个初始化进行操作。如果并发量很高的话,前面的方案可能会直接冲爆mysql。原创 2023-03-02 16:01:44 · 321 阅读 · 0 评论 -
PHP对接腾讯云内容审核平台
我们首先需要拿到腾讯云的secret_id与secret_key。然后我们传入对应需要审核的文本即可。腾讯那边会给对应的返回标签。首先我们需要引入腾讯云的包。原创 2023-02-24 15:16:31 · 544 阅读 · 0 评论 -
3分钟用Go搭建一个喝水提醒通知
有的时候工作起来经常忘记喝水。我们如何设定一个自己的喝水消息提醒呢?原创 2022-10-17 10:04:13 · 440 阅读 · 0 评论 -
php实现排名和超过多少用户比率
我们项目中有给用户打分。分值分别为100 100 100 90 90 80 80 70 60 60如果是第一名 那么我们预期的结果是超越100%的用户。如果分数是90 那么应该是超越50%的用户。原创 2022-09-13 17:00:36 · 514 阅读 · 0 评论 -
PHP踩坑记录-empty判断浮点型
如果用empty判断浮点型需要注意的地方。原创 2022-08-03 13:49:33 · 340 阅读 · 0 评论 -
redis电商秒杀设计
在电商业务中,我们经常会遇到秒杀的业务情况,我们如何做到高成功抢购率以及实现不超卖的情况。对于这种涉及到高并发的业务,我们通常会使用nosql去做处理。等到逻辑处理成功后才写库。并不只是有上述方案可以实现秒杀业务,具体业务情况需要具体分析。上面还有很多的附属业务的逻辑没有实现。比如支付问题,用户取消抢购成功的商品问题。...原创 2022-07-18 17:06:44 · 297 阅读 · 0 评论 -
【HONG】thinkphp5 tp5 实现缓存模糊删除 tag
缓存模糊删除原创 2022-07-06 14:55:34 · 470 阅读 · 0 评论 -
windows上如何创建类似 liunx 下 crontab定时任务
windows下面也是可以创建定时任务的,甚至可以做到秒级执行windows下定时任务需要的命令schtasks 创建这里只讲几个我们常用的命令schtasks /create 创建一个新的定时任务/sc 指定计划类型 设置分钟级 秒级 小时级/mo 间隔时间/tn 命令别名 对于后面查询和删除就以这个为唯一值/tr 具体命令执行内容例子:schtasks /create /sc minute /mo 1 /tn normalMessagePush /tr "php d:\php.原创 2022-02-28 15:55:23 · 1898 阅读 · 0 评论 -
PHP对接苹果支付全流程
对接苹果支付流程上相较于微信或者支付宝来说 后端做的代码是非常少的 但是需要注意的点很多对于支付 最重要的是知道这笔支付到底是不是真正意义上成交了,以及成交价格是否对应我们的商品价格 这是我们需要去判断的苹果支付对于微信支付和支付宝支付来说,有本质的区别。苹果支付的商品需要现在appstore里面去上架。所以整个支付流程如下APP内请求苹果SDK发起支付。并完成购买。支付成功之后APP端会传一段receipt_data(同时需要带上APP支付成功的交易单号)给后端去做验证。后端拿到这个数据之后,.原创 2022-02-23 22:00:00 · 5685 阅读 · 1 评论 -
微信用户失效头像匹配算法
我们如果做微信相关业务的时候,会获取到用户的logo。但是这个logo用户可能会更换,更换后再次访问logo地址就会出现上面的头像。这里提供两种解决方案来做处理,具体根据业务来每天跑一个定时任务。匹配用户的头像和上述图像相识度。如果是同一张图片。那么请求微信那边接口去更新用户最新的logo。代码如下<?php/* * wx_url 微信头像 * $local_b 本地空头像 */function checkLogo($wx_url){ $content = file_..原创 2022-02-17 17:08:35 · 505 阅读 · 0 评论 -
composer更换镜像源
源镜像在国外,访问速度会很慢一般在国内会使用大公司自己的镜像源我们使用阿里云的镜像源composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/composer install原创 2022-02-16 15:19:07 · 1592 阅读 · 0 评论 -
phpstorm操作git分支
git所有的分支情况这里都有 如果远程创建了分支 需要git pull本地才能查看点击单个分支的话可以使用的功能常用功能已经显示再截图上面了原创 2022-02-16 15:14:47 · 1103 阅读 · 0 评论 -
实测Go计算性能和PHP计算性能对比
系统环境 一核1G 阿里云服务器php版本 : PHP 7.1.33go版本 :go1.17.7计算代码$s_time = time();//循环100亿次for($i=0; $i<10000000000;$i++){}$e_time = time();echo $e_time-$s_time;package main // 声明 main 包,表明当前是一个可执行程序import ("fmt""time") // 导入内置 fmtfunc main(.原创 2022-02-15 14:12:21 · 1565 阅读 · 0 评论 -
PHP中如何实现多继承
这个题目在面试的时候经常会遇见PHP继承是只能单继承的。 那如何实现多继承呢? 可以使用interface和trait来实现多继承功能。interface使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。 由于接口(interface)和类(class)、trait 共享了命名空间,所以它们不能重名。接口就像定义一个标准的类一样,通过 interface 关键字替换掉 class 关键字来定义,但其中所有的方法都是空的。接口中定义的所有方法都.原创 2022-01-08 12:44:46 · 3724 阅读 · 0 评论 -
liunx下源码安装php+nginx环境全解-----不是copy
首先讲下卸载。yum((全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器)安装的yum remove nginxyum remove php-fpmrpm(RPM是Red-Hat Package Manager(红帽软件包管理器))安装的rpm -e nginxrpm -e php-fpm源码安装的service nginx stopwhere is nginx删除所有目录se原创 2022-01-06 22:06:31 · 1258 阅读 · 0 评论 -
【linux下CA证书过期怎么处理】
引文我在安装php环境时。添加rpm源为rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm时然后安装php7.2时 提示这样一个错误 error(60) 对方网站证书过期然后我在本地环境下测试下载,是没有问题的。那就说明肯定是服务器环境下的证书出现的了问题但是我在服务器上面使用curl https://www.baidu.com 又是没有问题的为什么会这样子呢?什么是双向认证模式?对于面向公众用户的https的原创 2022-01-06 21:48:14 · 2347 阅读 · 0 评论 -
php里面echo和print有什么区别
一到网上搜,一大片这样的解释,但都是千篇一律,没有经过实际测试今天我们来实测看看 到底有什么区别测试一 打印函数返回值<?php function a(){ return "a";}echo a();print a();print_r(a());?>三个都是正常输出 说明打印函数都没问题。<?php function a(){ return "a";}var_dump(echo a());var_dump(print(a()))原创 2022-01-01 10:09:38 · 153 阅读 · 0 评论 -
PHP7时代下的ZVAL以及垃圾回收gc的改变
首先,我们需要搞清楚什么是ZVAL,我们PHP底层是C语言写的,所以我们PHP里面的ZVAL是C语言里面的一个结构体,用来保存我们PHP语言创建的变量。既然是一个结构体,那么里面就会有很多的变量来保存我们不同的变量类型。PHP5时代结构体里面的字段比较少,虽然足够用了,但是当在某些情况下,会造成很大的资源浪费。由于字段的不足。所以在PHP7时代,增加了很多字段来改进这些不足PHP5的ZVAL:struct _zval_struct { union { long lval;原创 2021-12-25 11:57:34 · 331 阅读 · 0 评论 -
swoole性能实测 多协程与多进程
***** 协程可以简单理解为线程,只不过这个线程是用户态的,不需要操作系统参与,创建销毁和切换的成本非常低,和线程不同的是协程没法利用多核 cpu 的,想利用多核 cpu 需要依赖 Swoole 的多进程模型。*****上面是协程与进程区别,如果使用协程,没法利用多核CPU,我们现在来实测下 ,获取百度页面5000次分别采用多协程与多线程模式来进行测试测试环境:PHP 7.2.3 服务器配置: 1核1G swoole 4.0+这是两台服务器配置首先使用多进程去跑<?phpuse原创 2021-12-19 17:04:18 · 1015 阅读 · 0 评论 -
centos卸载源码安装的php
由于php版本要升级,所以需要删除系统下的php5.6版本网上搜索到的卸载教程都是让你 yum remove 然后 rpm 删除这样很多教程都是不全面的,不同的安装方式,卸载方式也不一样。如果源码安装 卸载方式如下service php-fpm stop > /dev/null 停止服务rm -rf ${php_install_dir} /etc/init.d/php-fpm 删除php-fpmrm -rf /usr/local/imagemagick //删除rm -rf /usr/l原创 2021-12-19 13:35:58 · 1763 阅读 · 0 评论 -
google chrome浏览器 iframe 内嵌页面cookie无法写入问题
部分浏览器在iframe中 写入cookie会存在不能写入的情况google浏览器修改方式原创 2021-06-27 15:07:09 · 1394 阅读 · 0 评论 -
树结构紧缩 删除指定节点 保留树结构关系
现在出现一个问题,就是用户分为上下级关系,之前的数据中用户名称是唯一键,新系统里面使用手机号作为唯一键,现在需要将原有数据搬迁到新系统里面来,需要排除所有手机号出现的多次的数据。并且将手机号相同的用户下级关系绑定到需要删除的用户的上级来即关系紧缩下面用一张图来描述问题如图所示,用户呈现上图关系图谱,当前B和D手机号相同,我们需要将D干掉,并且把F绑定到B下面首先我们分析问题。首先我们需要将所有需要删除的用户查询出来查询出所有用户的数据通过手机号分组查出实际需要插入新系统的数据两个查.原创 2021-06-10 17:58:12 · 235 阅读 · 0 评论 -
正则表达式详解以及性能优化建议
首先我们先看正则表达式最关键的几个东西元字符-具有特殊意义的专用字符元字符描述.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束-表示范围[ ]匹配括号内任意一个字符* 、+、?量词量词-量词也算是元字符限定符代码/语法语法*重复0次或更多次+重复1次或更多次?原创 2021-05-20 16:35:43 · 444 阅读 · 0 评论 -
实测php8.0性能-对比PHP5.6有强劲的提升
测试代码<?php$start_time = time();$total = 0;for($i=0;$i<1000000000;$i++){ $total +=$i;}$end_time = time();var_dump("use time:".($end_time-$start_time)."s");下面使用php8.0跑上面的代码花费时间:16秒下面使用php5.6跑同样的代码花费38s结果明显 php8.0有了明显的提升...原创 2020-12-03 15:06:57 · 2334 阅读 · 0 评论 -
Supervisor使用详解
一、supervisor简介Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为superviso转载 2020-09-03 12:36:25 · 478 阅读 · 0 评论 -
PHPCurl异常 cURL error 60: SSL certificate problem: self signed certificate in certificate chain
错误原因:这是因为没有配置信任的服务器HTTPS验证。默认情况下,cURL被设为不信任任何CAs,因此浏览器无法通过HTTPs访问你服务器。解决办法https://curl.haxx.se/docs/caextract.html 下载最新pem文件放入下面的路径打开php.ini文件,搜索curl.cainfo 去掉前面的#注释 填上该文件的绝对路径,如下图所示:重启PHP-fpm 搞定...原创 2020-09-05 14:57:36 · 9160 阅读 · 0 评论 -
敲了这么久的代码,你知道CPU的工作原理吗?
https://www.bilibili.com/video/av21376839/进入强大的B站看计算机科学吧这些知识还是要懂的记得点个赞~原创 2020-08-11 16:31:27 · 238 阅读 · 0 评论 -
PHP多进程编程之pcntl_fork详解(1)
pcntl_fork()函数是php-pcntl模块中用于创建进程的函数。(不支持windows)官方文档对该函数解释:pcntl_fork适用PHP版本:(PHP 4 >= 4.1.0, PHP 5, PHP 7)pcntl_fork — 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。说明pcntl_fork ( void ) :原创 2020-06-18 17:36:12 · 605 阅读 · 0 评论 -
面试必看之浅谈HTTP与HTTPS区别
1.HTTP与HTTPS的定义HTTP:超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。HTTPSHTTPS (全称:Hyper Text Transfer Protocol over Secure......原创 2020-05-06 16:27:25 · 37526 阅读 · 2 评论