Siam博客

Openssl - 微信支付证书pfx分解成pem

微信
事件起因:做香港本地微信支付(香港公司收取香港用户钱包)申请的商户只提供了cert.pem和一个pfx的文件。程序使用pem需要cert和key两个文件,所以需要从pfx文件中提取cert和key文件。 下载OpenSSL:http://gnuwin32.sourceforge.net/pa ...
Read more

微信退款结果回调解密,低版本以及7.1以上版本的使用方法

微信

微信的退款结果回调,数据是加密的。我们需要解密之后才能得到订单信息和结果信息,进行处理。 再次吐槽微信,官方demo都藏得贼吉尔深,一般人没有点狗屎运都找不到。

Read more

TP5.0.20 - TP5更改网站目录为/public 后运行出错解决

PHP
今天在部署TP5的时候,把网站根目录指向到public目录下,运行后产生以下错误 Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/xx/thinkphp/start.php) is not w ...
Read more

PHP生成不重复的订单号

PHP
使用场景:商城、微信支付等生成订单号需求 方法一 比较常见的一种简单方法 使用date()函数,获取当前日期的数字,再配合rand()函数,生成几位随机数。便是一个简单的12位订单号了 <?php function getOrderNum(){     $date =  ...
Read more

无限级子商户的查询优化方法

PHP

无限级平台必须解决的一个问题,分享一下我在网上学习到的方法。 假设平台有这样的上下级关系image.png A 有 2 个直接下级B、C,    B有2个直接下级D、E,    C有2个直接下级F、G 我们正常的做法是使用递归这样操作:先查询出所有上级为A的子商户,再查询所有上级为上一个查询结果的子商户。如第一步查询出B、C,第二步查询所有上级为B、C的商户(mysql的 IN 范围条件实现)。 这样的递归查询耗时是非常长的。(个人觉得具体消耗在连接mysql数据库的次数上) 现在我们的做法是这样的:一次性查询出所有的商户信息(id、上级id),并且按正序排列(添加时间,因为要有第三级的商户必须先有第二级商户,按正序排列才可以正常得到结果)

Read more

session在浏览器关闭时进行何处理?以及回收机制

PHP
Session会话机制被广泛应用在JSP、ASP、PHP等语言中。一般用来储存登陆状态或者其他的一些需要验证权限的状态。 以下类似代码在每个系统里应该都会存在 <?php $userAccount = $_POST['user_account']; $passWor ...
Read more

数据分表分库的基本思路

数据库

什么情况需要切分?

当一个数据库被创建之后,随着时间的推移和业务量的增加,数据库中的表以及表中的数据量都会越来越多,就有可能会出现两种弊端: (1)数据库的存储资源是有限的,其负载能力也是有限的,数据的大量积累肯定会导致其处理数据的能力下降; (2)数据量越多,那么对数据的增删改查等操作的开销也会越来越大; 所以,当出现如上两种情况,分库分表势在必行。

两种切分方式

垂直切分

举例场景:表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能。这时需要把大的字段拆分到另一个表,并且该表与原表是一对一的关系。 学生答题表 t 结构如下

Read more

手把手教你写一个composer包

PHP

什么是composer

Composer 是一个命令行工具,它的作用就是帮我们的项目管理所依赖的开发包,属于依赖包管理工具

什么是依赖包管理工具

由于程序届的《开源运动》,我们可以在社区找到很多别人提供的工具,也可以向社区贡献我们的代码。 在github还没有兴起的年代,我们是需要到工具的官网下载代码,比如jquery。然后放到我们自己的项目目录里,再在我们的页面中使用。 但是…当一个网站依赖的包越来越多,我们会发现这是一件非常麻烦的事情:

  • 安装新包,代码目录管理等问题
  • 升级依赖包,只能手动替换文件
  • 安装过程发现某个包需要依赖于另一个包,那我们又要开始安装前面的包…

哪怕是每个开源包都有自己的官网,也还是需要用户去下载安装。 即使是有一个类似github的大仓库,可以存放所有的项目,实现一站下载。 但不同依赖包之间的关系也还是需要手动维持,包与包之间的关系有可能是相互依赖,也可能是冲突的。

Read more

PhpSpreadsheet导出Excel表格,长数字自动转科学计数法

PHP
原代码 public function down($data) { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $lieCount ...
Read more

PHP图片文字合成居中

PHP
PHP处理图片 PHP使用GD库创建和处理包括GIF,PNG,jpef,wbmp以及xpm在内的多种格式的图像。 以下教程:图片合成文字,实现合成文字水平、垂直居中。 读取图片资源 imagecreatefrom 系列函数用于从文件或 URL 载入一幅图像,成功返回图像资源,失败则返回一个空 ...
Read more
上一页 下一页