楠Go随笔

数据存储设置

2018-05-02 09:29:32 admin 阅读 网站首页 > PHP > Discuz的使用

  发现Discuz是个好东西,它里面设计了很多常用类供开发调用。更人性化的是,它在文件上传或者头像上传上对存储做了分门别类,可以降低系统负载。

  就好比 上传附件 模块,附件是与tid挂钩的,里面有一个函数 getattachtableid 对传入的tid做字符串处理,然后取最后一位字符串(0-9),然后根据这一个数值得到相应的存储表。以前就学过字符串本质上也可以看成一种数组,由一个个字符组成的字符串数组,可以用中括号【】取相应下标的值,当然也可以用花括号{},这是第一次我看到了整数值用于字符串处理的典例,这种方式很直接简单。

类似的还有对头像的划分。

我们知道,当一个系统中文件过多而且集中在一个目录的时,检索文件会很慢,严重影响执行效率。最简单的方式是按一定日期将文件存储在以日期为命名的文件夹中,这样不会很拥挤。

像DZ里面有一个avatar系统核心函数 只需要传入必填参数用户UID ,然后将UID格式成9位数的字符串,不足九位的前面补0;部分代码如下

<?php
$uid = sprintf("%09d", $uid); $dir1 = substr($uid, 0, 3); $dir2 = substr($uid, 3, 2); $dir3 = substr($uid, 5, 2);
?>

然后划分成父子级三级目录,这样就实现了自动创建多个目录的情况下还包含了文件夹嵌套,也能确保一个UID能用唯一的一个头像资源地址。很简洁

搜索

关于楠Go

2015年毕业于吉林大学珠海学院,现今工作已两年有余,2014年在珠海一家游戏公司从事手机游戏开发,后离职转型为网络端PHP工程师,时至今日。熟练掌握PHP面向对象编程网络编程TP框架使用Discuz论坛插件开发。掌握前端框架Bootstrap的使用,掌握JS框架Jquery的使用。已开发多款网站,有着一定基础的开发经验,希望能在互联网领域再上一层楼!

了解更多: 开源中国 ThinkPHP


Powered by MetInfo 5.3.19 ©2008-2018 www.MetInfo.cn