工作的一些经验记录
大约 2 分钟
工作的一些经验记录
函数输入
当函数输入需要数组或者字符串时,可以使用:
function a($a){
if(is_string($a)){
$a = [$a]
}
}
但是这个方法只是省事,提高效率,带来的是入参类型不明确
文件生成
编译文件:
public function compile($templatePath, $context)
{
extract($context); #数组中将变量导入到当前的符号表
ob_start(); #打开缓冲区
include ($templatePath); #将文件引入缓冲区
$res = ob_get_contents(); #获取缓冲区内容
ob_end_clean(); #清理缓冲区
return $res;
}
这个要研究一下
json编码与解码
编码
json_encode($value, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
json编码添加第一个参数是因为编译中文时不让把中文编译成\u***格式。 添加第二个参数是因为让他不转义反斜杠。 | 是对这两个参数进行位或运算 因为JSON_UNESCAPED_UNICODE对应的编码是256对应二进制码是0100000000 JSON_UNESCAPED_SLASHES对应的编码是64对应二进制码是01000000 或运算之后是0101000000=320
解码
json_decode($value, true);
第二参数为true时,返回的是关联数组(array),若为false,则返回的是对象(object)。
首页刷新逻辑
首先创建一张显示表,然后将所有的数据抽象成一个类型,在查询的时候,只查询这一张表,然后加一个定时器,当有新的数据进入时,添加到这个表里面并做好排序。然后利用redis的订阅模式,将其绑定到redis上持续刷新。
图片上传
有时候业务需要上传一些图片,所以需要存入本地,那么存入本地则需要对此进行权限管理。首先列出对应linux权限
| 读取 | 写入 | 执行 | |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 |
| 2 | 0 | 1 | 0 |
| 3 | 0 | 1 | 1 |
| 4 | 1 | 0 | 0 |
| 5 | 1 | 0 | 1 |
| 6 | 1 | 1 | 0 |
| 7 | 1 | 1 | 1 |
linux将权限分为三个权限,文件所有者(红色),同组用户(绿色),其他用户(灰色):
000000000 二进制
000 十进制
对应上表。
例:755就代表对文件所有者给予所有权限,对文件所有者同一个用户组的用户读取和执行权限。
设计图片上传和文件上传是,该文件非必要下不将权限分给其他用户,所以一般以755为基准,在保证程序操作时同时给予最大权限。