跳至主要內容

工作的一些经验记录

Mr.Lexon大约 2 分钟back-end

工作的一些经验记录

函数输入

当函数输入需要数组或者字符串时,可以使用:

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权限

读取写入执行
0000
1001
2010
3011
4100
5101
6110
7111

linux将权限分为三个权限,文件所有者(红色),同组用户(绿色),其他用户(灰色):

000000000 二进制

000 十进制

对应上表。

例:755就代表对文件所有者给予所有权限,对文件所有者同一个用户组的用户读取和执行权限。

设计图片上传和文件上传是,该文件非必要下不将权限分给其他用户,所以一般以755为基准,在保证程序操作时同时给予最大权限。

上次编辑于:
贡献者: Lexon