PHP
hzbigdog
这个作者很懒,什么都没留下…
展开
-
php的Url 安全的base64编码解码类
用于 http传输的,安全的url base64编码,主要对 +,-,=字符进行了处理,以防止注入的产生原创 2023-12-17 16:35:32 · 1065 阅读 · 0 评论 -
Mysql 8.0 实现分组后获取组内极值算法 broup by
Mysql 8 中无法用低版本的 二次子查询实现,把数据集升序排列后,再外层做group By分组,取出第一条的方式。因此引入了一个新函数,自动生成行序列,并且行序列按照指定字段分组后再根据自定字段进行排列原理如下。goupbyfield为分组字段,sortfield为组内需排序的字段。最后外层取rn=1的记录,就是最终分组好的结果值。原创 2023-11-14 19:05:48 · 312 阅读 · 0 评论 -
php 取上周一的日期(任何情况下)
php 的strtotime 功能很强大,但是有个坑,使用时要注意,否则会引发故障。先上代码if (date('w') == 1){ //当前周一时的处理 $sMondayDay = date('Y-m-d',strtotime('last monday')); //当前周一,取上周一}else{ //当前不是周一时处理 $sMondayDay = date('Y-m-d',strtotime('-1 week last monday')); //当前非周一,取上前推一周取周一}原创 2022-01-18 11:00:35 · 986 阅读 · 0 评论 -
php 获取制定月的最后一天与第一天
快捷高效的 生成月的第一天与最后一天原创 2021-12-29 22:21:56 · 388 阅读 · 0 评论 -
withoutOverlapping()使用redis缓存,因故障导致对应的定时任务不被执行的问题处理
laravel的定时任务使用了withoutOverlapping()导致的故障排除原创 2021-12-15 14:52:28 · 1694 阅读 · 0 评论 -
php检测utf8mb4字符的方法与清理方法
/** * 字符串基础工具 * @author JerryLi * @version 20210724 */class StringBaseTool{ /** * 截断字符串,保持固定的暂用字节长度 * @param string $sStr 源字符串 * @param int $iMaxLen 保留字节长度 * @param string $sRepStr 替换字符串 * @return string */ stati.原创 2021-07-24 15:52:15 · 753 阅读 · 0 评论 -
升级php7.4 laravel lumen报错Trying to access array offset on value of type null
最近升级php 7.0到 php7.4,升级完后发现lumen跑不起来了,报如下错误:lumen 环境是 5.5.2In ServiceProvider.php line 84: Trying to access array offset on value of type null[2021-05-06 20:19:14] lumen.ERROR: ErrorException: Trying to access array offset on value of type null in..原创 2021-05-06 20:35:57 · 6178 阅读 · 1 评论 -
php 自动识别 GBK转换UTF8的方法(源码)
不多说了,看标题就明白了,生产环境的代码,需要的拿去。如果用得上,感恩您的打赏检查是否为UTF-8字符集 检查是否为UTF-8 BOM文件 将GBK文件转换成UTF8文件 检查是否带UTF-8的BOM头 移除字符串的BOM<?php/** * 字符串BOM检测以及UTF-8的转换处理 * @author JerryLi * */class StringBom{ /** * 移除字符串的BOM * * @param stri.原创 2021-04-02 10:18:17 · 270 阅读 · 0 评论 -
随机比例算法
随机比例算法缘起,由于业务需求的需要,需要在保持相对稳定的比例下,生成随机选择数。应用场景此类算法常用于限定资源下的,负载均衡算法,抽奖算法等等。关键点在需要保持在某个基数量下,按照比例分布随机值。应用举例例如:有3个供应商(后面简称SP),每次从中选择一个SP提供服务,但是需要保持每次是进行随机的选择,但命中率要保持总量相对稳定的比例;如:1号SP 5%,2号SP 25%,3号SP 70%,总量在1000次或者1万次的分配中保持按照指定的比例均衡分布。以上的应用举例是实际...原创 2021-02-09 16:36:08 · 1611 阅读 · 0 评论 -
PHP在UTF8下生成的.csv在excel中乱码问题解决
其实原理很简单,因为office是在windows下的,用的是ansi字符集,所以打开utf8的文件时,中文内容会变成乱码。这时需要告诉excel当前的.csv文件是utf8格式的,他就能正常识别。解决方式是在创建文件后,在最开头写入一个 UTF8-BOM头标识,excel就知道这个文档用utf8格式打开。代码如下,请参考输出bom头的这行。$sCsvFile = storage_path('app/csv_vc_cb_'. time() . rand(100, 999) .'.csv');原创 2020-12-17 14:27:24 · 387 阅读 · 0 评论 -
Dotenv 坑一枚, “#”问题导致数据丢失
Dotenv 不介绍了,反正php的今天配置都用它.env。不知道的自己补一下课。之前用.env的时候,配置文件中的密码字段使用了 wsde346gf#redis 这样的密码。类似这样#环境配置[local | dev | prod]APP_ENV=local#调试参数:线上环境必须改为falseAPP_DEBUG=trueAPP_KEY=40e8dbd8a3850a6a89...原创 2019-09-24 18:36:27 · 897 阅读 · 0 评论 -
php 中文转拼音最全字符集函数(包含20902个基本汉字+5059生僻字)
与传统的范围比对方式不同,这个函数采用直接字符匹配的方式翻译拼音,不需要做gbk转码。而且当遇到遗漏的中文字符时,也可手动维护加入map表,扩展简单。包含20902个基本汉字+5059生僻字,几乎全了。代码直接拿走吧。<?php/* 测试用例 $start_time = microtime(1); var_dump(Str2PinyinService::pinyi...原创 2019-05-14 15:28:50 · 210644 阅读 · 0 评论 -
php 全角数字转半角 与 手机号码验证
//全角数字转换成半角数字的方法(效率最高的方式)$sData = '13588243897';$aNumber = array('0'=>0, '1'=>1, '2'=>2, '3'=>3, '4'=>4, '5'=>5, '6'=>6, '7'=>7, '8'=>8, '9'=>9);echo strtr($sData, $aNumber);//手机号码的号段验证(13原创 2014-09-01 18:11:51 · 2574 阅读 · 0 评论 -
汽车VIN编号 有效性检查 PHP 验证算法
用于车辆的vin 校验是否有效,原理:利用 vin 协议中的第9位,校验值对vin的内容进行校验。防止用户输入无效或错误的校验码。原创 2016-11-23 09:35:15 · 3375 阅读 · 0 评论 -
php中实现escape函数
function escape($sStr, $sInCharset='GBK', $sOutCharset='UTF-8'){ return str_replace('\U', '%u', strtoupper(trim(json_encode(convert_encoding($sInCharset, $sOutCharset, '车猫(17098150465)')), '"')));原创 2016-06-06 20:14:58 · 623 阅读 · 0 评论 -
用PHP做服务器转发层,解决js的ajax跨域访问问题
做js的ajax应用时,会遇到你需要请求的接口并不在你当前域下,此时就会出现跨域访问的问题,浏览器会禁止你请求这个接口。此时怎么访问这个WebService的接口呢?一个简单的办法就是在本域的服务器上,增加一个转发层,将浏览器上过来的请求接收后,通过服务器将这个请求转发到对应的WebService上,然后把返回结果再取回后,送回js的请求页面。一般而言这个是解决跨域访问最安全与最具兼容原创 2012-11-21 12:48:48 · 10685 阅读 · 0 评论 -
PHP整数取余返回负数的问题处理
我们先来看个例子.$res = 16244799483; echo $res%9999999; // 输出结果为 -5069794, 正确的结果应该是4801107其实这也算上PHP一个BUG吧.最主要是PHP是个弱类型语言.他内置了机器来判断用户的类型.但是机器毕竟是机器.也有判断出错的时候.就像上面.所以这时候我们就需要人工干预下.所以我就想到要用下面的方法来解决PHP整数原创 2013-02-25 09:59:00 · 3192 阅读 · 0 评论 -
php 升级后 htmlspecialchars 返回空 的解决方案
今天将php版本升级到5.3.0以上(我升级到php5.4.13)的版本后发现一个问题 htmlspecialchars 函数返回为空。查了资料后,发现新版本对htmlspecialchars这个函数做了修改,当本地字符集不是utf-8的时候,需要默认指定当前使用的字符集,否则就可能会出现返回为空的情况。详情可参考这个文章 http://ouyangxiaofei914.blog.163.co原创 2013-04-06 16:18:34 · 2809 阅读 · 0 评论 -
用js实现php里面的函数库 strtr()这个很好用
http://phpjs.org/functions/国外的一搓牛人,用js实现了php里面所有的函数。这个函数库很好用,熟悉php的话,写js的时候可以看看,里面有没有要用的到的函数。转载 2013-04-25 14:35:03 · 1310 阅读 · 0 评论 -
PHP 的本地文件缓存处理类(非常高效)
为了兼容服务器上没有安装memcache的内存缓存,专门开发了一个基于PHP5环境的,高效本地文件缓存类。支持缓存失效时间的处理,并且非常节省内存。支持3个操作set(), get(),del(),详细使用方式请见备注中的example<?php/** * php文件缓存类 FileCache * @author Jerryli(hzjerry@gmail.com) * @vers原创 2013-05-13 21:46:21 · 4302 阅读 · 0 评论 -
php的curl函数模拟post数据提交,首次速度非常慢的处理办法
如果你用 curl_setopt 函数来与远程的webservice或者抓取页面的处理时,有时会遇到很奇怪的现象,首次访问的速度异常的慢,基本上要5s-10s的时间让人奔溃。但是怎么查也差不出问题出在哪儿,最近发现一个文章写了处理这个问题的方式。先从解决问题入手:curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);转载 2013-08-16 19:55:16 · 10078 阅读 · 0 评论 -
独家专供:PHP的URL验证正则算法,有史以来最强悍的
经过多年的积累,逐步完善写出的url验证算法function isUrl($s){ return preg_match('/^http[s]?:\/\/'. '(([0-9]{1,3}\.){3}[0-9]{1,3}'. // IP形式的URL- 199.194.52.184 '|'. // 允许IP和DOMAIN(域名) '([0-9a-z_!~*\'()-]+\.)*'原创 2013-10-11 16:22:46 · 4632 阅读 · 0 评论 -
PHP的UTF-8中文转拼音处理类(性能已优化至极致)
优化了传统的拼音转换处理类的算法,专门针对UTF-8字符集进行处理。如果你使用GBK或GB2312字符集,只需要去掉iconv函数,直接赋值,不需要转换就行。原创 2014-07-15 15:38:27 · 30367 阅读 · 3 评论 -
php导出CSV时,超长数字精度丢失问题与前导0的字符串丢失0的问题解决
php生成的CSV有时候会遇到两个特殊情况:1、输出的字段中,含有超长数字(18位的数字)比如身份证:122121197410180016,就算输出时字段加上"",还是会被识别成数字,并且丢失精度,后面的4位会变成0,象这个样子1221211974101800002、输出的字段中,含有前导0的数字字符串,会被强制丢掉前导0。比如:01082151122,或者00001,00002,系统会强原创 2014-11-14 10:29:28 · 7232 阅读 · 0 评论 -
php中CRC32遇到负数问题的解决方案
在使用PHP的CRC32函数的时候,因为在32位系统中,int是4个字节带符号位,因此输出结果最高位为1的时候,就变成负数了。使用以下方式可以让输出结果不含符号位sprintf('%u', crc32($Node['HBAID']));如果你遇到这样的问题,按照上述方式处理就能药到病除。原创 2015-01-27 17:13:53 · 6059 阅读 · 0 评论 -
计算两个GPS经纬度坐标之间的距离 PHP
PHP版本的 GPS两个坐标点的距离计算原创 2014-12-24 09:39:28 · 6128 阅读 · 0 评论 -
RSS 2.0 php生成类,快读生成需要xml文件
在项目中用到的RSS 2.0版本的php生成类。只需要根据数据结构吧数据输入进去就能生成一个xml文件,并通过函数输出。原创 2015-10-22 19:37:12 · 919 阅读 · 0 评论 -
php版本 N进制算法
基础一算法:这个算法能够在2~9进制之间与10进制进行转换。因为使用递归的方式,在进行10进制=>N进制的转换过程中需要提供一个数组作为引用变量。保存转换的结果原创 2010-12-22 11:06:00 · 1265 阅读 · 0 评论