分类目录归档:PHP

PHP 数字转字符串互换类

再次更新:发现尽然有现成的Base32方案,无奈已经写好了,还是继续分享出来吧。本方案比Base32相比还是有优势的。
1、自带校验功能
2、解码后可以和数据库中的生成项目对比进行二次验证
3、生成的邀请码是随机,相比Base32规律更难找

本类所在的项目,使用 ThinkPHP 搭建,把 IntConvert.php 放到 app\services 目录下,就可以直接使用app\services\IntConvert 自动调用。如果存放目录后,注意修改下 对应的明明空间。

—-分割线—–

最近 的APP上需要增加一个 邀请码功能,通过邀请码注册。因为内部使用,需要防止 外部用户 随便填写一个 邀请码注册成功。因为主要通过图片的方式进行传播,还不恩那个设计的太长。

初期考虑了两种方案: 最笨的方法是一次生成好,用时随机获取一个。另一个是通过Base64对用户ID进行转换下。分析之后,两种方案都不太理想。 继续阅读

PHP 实现 毫秒级读取大文件(千万行级别)

一同行朋友遇到奇葩的需求,需要在 一个 1000万行级别的 文件,随机读取一行。
几千行很好处理,直接 file(文件名),通过返回的数组 的索引既可获取。

尝试了 很多方法,超过50M的文件,打开速度都不理想。给朋友提供了 memcached 和 mysql 内存表的思路,因为后期维护比较麻烦,也都放弃了。

在 去 蹲坑时 灵光一闪,既然小文件打开很快,为什么不把数据分到多个文件呢? 继续阅读

thinkphp5 instance 的简单实现

最近学习 ThinkPHP5,第一次看到 TestClass::instance() 就能创建 TestClass 实例的方法。感到很好奇,翻阅 ThinkPHP 的源代码,大体理解了 它的 设计思想,非常的先进。

再次从零造车一次(昨天的造车:angularjs的数组传参方式的简单实现http://www.miaoqiyuan.cn/p/angularjs-array-arguments),来讲讲 他的 具体实现。本文(thinkphp5 instance 的简单实现)为原创文章,原文地址:http://www.miaoqiyuan.cn/p/php-class-instance,转载请注明出处。
继续阅读

mysql使用localhost,竟然会导致程序变慢

好久没有更新博客了:),之前写的 ThinkPHP的权限管理 thinkAuthorization(地址:http://git.oschina.net/mqycn/thinkAuthorization 最近会支持 ThinkPHP5.0),预计本周末会发布

最近的一个项目使用 ThinkPHP5.0 框架,为了省事,直接用全宇宙最强大的 phpStudy 做开发环境。调试时,每次脚本执行时间都超过一秒,查看日志,发现 数据库 Connect 时竟然使用了超过1秒的时间。

最初怀疑是 TP5 框架的问题,改用原生方式(mysql_connect)连接 数据库,竟然也存在问题。数据库地址 使用的 localhost,改用 127.0.0.1 后,解决。 继续阅读