![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
PHPerJiang
一只有理想的程序猿
展开
-
Golang & PHP 正则大小写差异
背景app_url_handle重构过程中,我们采取尽量避开正则操作,但是事与愿违,还是有场景用正则,结果就踩了个大小写的坑PHP版正则/(https|http):\/\/(item|item.m)\.(jd)\.(com|hk)(\/product)?\/(\d+)\.html/iPHP版正则提取了多个地方的数据,但是只用了其中的id, 并且忽略大小写,如果你把正则原封不动的甩到golang正则编译器里,绝对报错,原因是两种语言的大小写语法不通GO版正则(?i)(...原创 2020-09-07 09:55:06 · 483 阅读 · 0 评论 -
Golang & PHP 针对base64的差异
背景在重构app_url_handle的时候,有一段逻辑的数据是需要使用base64处理的,身为老鸡贼的我,本能的去看了下golang的文档,果然,用起来没有我想象的那么容易,两种语言还是有差异的,接下来我给大家举例并分析一波,以便理解。概念这里需要先普及一个概念和一个索引表 base64双向的编码/解码协议,根据一个64字符的字符集定义,RFC 4648标准化了两种字符集。默认字符集用于MIME(RFC 2045)和PEM(RFC 1421)编码;另一种用于URL和文件名,用'-'和'_原创 2020-09-07 09:53:25 · 1132 阅读 · 0 评论 -
记一次onbeforeunloadbody的页面关闭/卸载触发处理
需求背景: 同一个后台编辑页面,A编辑的时候B访问此页面,给出提示“A正在编辑”。思路: 结合操作人、操作文章做一个键值对存进redis做标识位,过期时间为半小时,文章第一个操作的会被记录,后续操作的会提示,当第一个操作的人关闭页面时,释放redis标识。实施: 后台加载编辑页时获取当前操作人,若是第一个则记录,前端js使用window.onbeforeunloadbody方法监听编辑页关闭/卸载,触发释放redis标识的ajax问题: 运营、开发、产品...原创 2020-09-03 14:45:52 · 418 阅读 · 0 评论 -
json引发的浮点数入舍失效问题
背景两个浮点型数字做运算时,可能会会出现下面的情况39.9-10 = 29.99999999999981并且使用round保留指定位数后api对外无效原因json问题引发,据说php7以上就好用解决php7之下版本的那就用下面这个方式吧,也能实现想要的效果$frequent_price =strpos($frequent_price,'.') !== FALSE ? rtrim(rtrim(sprintf("%01.2f", $frequent_price),"0"...原创 2020-09-03 14:44:46 · 313 阅读 · 0 评论 -
wamp安装redis扩展
1,查看phpinfo()查看PHP版本,编译器版本PHP Extension Build,cpu架构Architecture. 2,根据版本选择扩展包php_redis.dll下载地址:http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/php_igbinary.dll下载地址:http://windows.php....转载 2018-12-19 13:13:02 · 431 阅读 · 0 评论 -
毕设开发时的小随笔(5)
2019.2.15大家好,老夫又来了,别看我更新的慢,但是老夫真的在努力的做毕设,目前进度80%了。话不多说,小二,上问题~~一个关于Ci框架内部跳转的总结:之前的随笔里我写过Ci的请求如果在外层js里使用ajax填url的方式会引发一个404错误(其实就是请求路径不对导致的),之前我的解决办法是在view层设置一个锚点比如 <input type="hidden" id="...原创 2019-02-15 15:59:52 · 186 阅读 · 0 评论 -
毕设开发时的小随笔(2)
大家好,时隔多天,老夫又来了今天是2019.1.30,原谅我这么就没更新毕设相关的博客,事情太多了,目前在职当然以工作为主,毕设都是抽空做的,今天有时间来写一下这几天毕设的情况以及遇到的问题。我的毕设整体进度有40%了,目前登录注册以及信息流、个人资料的增删改查已经完成,遇到的问题还是很多的,废话不多说,老板,上bug~~: 第一点,信息流的存储我是模拟十万级的量进行存储,所以我使用...原创 2019-01-30 11:58:17 · 459 阅读 · 0 评论 -
毕设开发时的小随笔(3)
坑边前言大家好~老夫又来记录了,别问我为啥昨天才更了今天还要更,因为我掉坑了,疯狂采坑,无与伦比的坑,要不是有导师指点我,怕是我要废了!!在这多谢叶老师指点,虽然你不知道我把这一切都记录下来了,哈哈哈哈!嗝~公司需求搞完了,我闲着有继续搞这个坑,不好意思,坑妈!有了高人指点,我还不把你打出屎来??这个坑是有wamp集成环境引起的,我的毕设在做架构的时候已经引入了redis并且写了自己的...原创 2019-01-31 11:09:29 · 121 阅读 · 0 评论 -
毕设开发时的小随笔(4)
先祝大家新年快乐哈~~19年2月11日,毕设目前开发到第二阶段了,总结一下最近的坑和点。第一点是过完年回来开发feed流模块,遇到了使用js滚动条下滑底部触发ajax请求更多数据,这个只算个点,计算好窗口滚动到底部的距离,然后使用ajax请求服务器拉去redis的数据就行,因为我这是流,在数据源足够大的情况下,是可以一直向下滚动拉去数据,知道数据源数据全部读取完毕为止。我的毕设是当访问流首...原创 2019-02-11 13:55:27 · 243 阅读 · 0 评论 -
分页组件
CSS.pagelist { margin: 0; padding: 20px 0; text-align: center;}.pagelist ul { display: inline-block; vertical-align: middle; margin: 0;}.pagelist li { display: inlin...原创 2019-03-15 17:08:23 · 264 阅读 · 0 评论 -
Linux下安装Linux并给PHP安装php-redis插件
安装Redis服务源码下载redis #下载wget -c http://download.redis.io/releases/redis-4.0.10.tar.gz#解压tar -zxvf redis-4.0.10.tar.gz#安装依赖yum -y install gcc gcc-c++ kernel kernel-devel#切目录并编译cd redis-4...原创 2019-04-10 17:10:05 · 409 阅读 · 0 评论 -
LNMP的安装配置
更换yum源为阿里源#!/bin/bash#备份本地yum源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak#获取阿里的yum源配置wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Ce...原创 2019-04-10 15:41:44 · 326 阅读 · 0 评论 -
Mysql8.0的一个坑
环境:Mysql8.0 、PHP 7.3报错如下:SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client原因如下:mysql8.0使用了新的密码验证插件,caching_sha2_password,而PHP7.3上并不支持,所以要么我们换个支持的PHP版本,要...原创 2019-04-18 11:22:15 · 1157 阅读 · 0 评论 -
基于ci框架的phpexcel导入导出excel文件
导入public function import_excel($file, $option = []){ $result = ['error_code'=> 0, 'error_msg'=>'success', 'data'=> []]; if (!file_exists($file['tmp_name'])){ $result['error_code'] =...原创 2019-06-03 13:19:50 · 1331 阅读 · 0 评论 -
毕设开发时的小随笔(1)
代码逻辑相关js控制表单不自动提交 $('#register_form').submit(function (e) { e.preventDefault(); }); 在我登录成功进行跳转的时候,发现CI框架有一个毛病,那就是外部引入的js文件使用ajax时的url不可控 //校验通过则发送请求 $('#login_btn').cl...原创 2018-12-29 17:55:34 · 154 阅读 · 0 评论 -
毕设开发时的小随笔(0)
代码逻辑相关js控制表单不自动提交 $('#register_form').submit(function (e) { e.preventDefault(); }); 今天2019.1.18,上午没有什么开发任务就开始做毕设,好几天没总结了哈,今天总结一下这几天毕设的情况首先是表单提交坑,看过我博客的应该也知道我前端基础贼垃圾,前几天刚刚补了html...原创 2018-12-29 17:55:28 · 209 阅读 · 0 评论 -
毕设开发时的小随笔
CI框架相关隐藏url中的入口文件在根目录下的.htaccess文件加入以下代码 <IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ /GraduationProje...原创 2018-12-28 12:06:13 · 177 阅读 · 0 评论 -
PHP加密技术
PHP加密技术md5加密技术(单向加密) MD5($string)返回32位字符16进制整数的密文 Md5($string,true)返回16字节的原始二进制密文 单纯使用Md5()加密已经不安全了,可以使用MD5(md5($string,true))方式来加密 Crypt加密技术(单项加密) Crypt($string,’$salt’)基于标准des算法的散列值加密“.0...原创 2018-08-11 17:31:10 · 766 阅读 · 0 评论 -
PHP实现上传下载
文件上传与下载文件上传上传文件的method必须为post , enctype=”multipart/from-data” 二者缺一不可doAction 中接收文件用_Files$_FILES中有五个上传变量:name :上传文件名 Type:上传文件MIME类型 Tmp-name:上传到服务器的临时文件名 Size:上传文件的大小 Error:上传文件的错误号Ar...原创 2018-08-11 17:31:59 · 1217 阅读 · 0 评论 -
PHP中的会话管理
PHP中的会话控制 COOKIEhttP特点:无连接无状态 Cookie: 保存在客户端中的内存cookie---有浏览器来维护,保存在内存中,浏览器关闭后就消失 ,存在时间是有限的硬盘cookie()保存在硬盘中,有一个过期时间,也可以手动清除浏览器数据,否则营办cookie不会被删除,存在时间是长期的Cookie使用场景一般在服务器端设置 可以用在永久登陆、购物车操作coo...原创 2018-08-11 17:41:50 · 612 阅读 · 0 评论 -
归并排序算法
<?php//归并排序算法//比快排更稳定,主要思想是分治法$arr = range(0,20);shuffle($arr);function arrSort($arrA, $arrB){ $arrC = []; while(count($arrA) && count($arrB)){ //比较有序数组中的值并弹出 ...原创 2018-08-28 09:15:54 · 125 阅读 · 0 评论 -
LeeCode中的Two Sum算法(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 10:06 * Title: * 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 * 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 */$arr = [2, 7, 11, 15 ,3, ...原创 2018-10-01 10:49:57 · 528 阅读 · 0 评论 -
LeeCode中的MedianofTwoSortedArrays(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 11:13 * Title: * 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 */$arr1 = range(3,9); //构建有序数组$arr2 = range(4,12);/...原创 2018-10-01 13:59:08 · 123 阅读 · 0 评论 -
LeeCode中ReverseInteger(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 14:09 * Title: * 给定一个 32 位有符号整数,将整数中的数字进行反转。 * 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则...原创 2018-10-01 14:47:05 · 248 阅读 · 0 评论 -
LeeCode中StringtoInteger(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 14:51 * Title: * 实现 atoi,将字符串转为整数 * 当字符串中的第一个非空字符序列不是个有效的整数;或字符串为空;或字符串仅包含空白字符时,则不进行转换。 */$string = ' -42030...原创 2018-10-01 15:01:00 · 147 阅读 · 0 评论 -
LeeCode中的RegularExpressionMatching(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 15:27 * Title : * 给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。 * '.' 匹配任意单个字符。 * '*' 匹配零个或多个前面的元素。 * s 可能为...原创 2018-10-02 16:58:16 · 124 阅读 · 0 评论 -
LeeCode中的ContainerWithMostWater(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/2 * Time: 17:11 * Title: * 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。 * 在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。...原创 2018-10-03 14:27:10 · 185 阅读 · 0 评论 -
LeeCode中的maxProfit(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/8 * Time: 15:54 * Title:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 * 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 * 注意你不能在买入股票前卖出...原创 2018-10-12 16:21:12 · 188 阅读 · 0 评论 -
LeeCode中的threeSum(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/3 * Time: 14:53 * Title:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c , * 使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 */$nums = [...原创 2018-10-08 11:26:16 · 142 阅读 · 0 评论 -
LeeCode中的123Pattern(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/8 * Time: 14:43 * Title:给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj。 * 设计一个...原创 2018-10-08 15:50:29 · 308 阅读 · 0 评论 -
PHP面向对象笔记
PHP面向对象php是单继承语言不能同时继承两个类定义类用class 对象是类的实例化 项目由对象构成 Public 公共类型 所有程序皆可使用Private 私有类型 只有该类内可以使用Protected 受保护类型 只有该类或者其子类或者父类可以使用3.构造方法和析构方法构造方法发 __contruct 实例类方法的时候自动执行析构方法 ...原创 2018-08-11 17:29:40 · 147 阅读 · 0 评论