PHP笔记网

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2018-09-29 23:43:18  修改时间:2024-12-02 19:19:00  分类:18.系统设计/架构/UML建模  编辑
作者:Albert.Wen  添加时间:2019-03-30 23:27:47  修改时间:2024-11-30 02:38:19  分类:15.OpenResty_Lua  编辑

在 Lua 中,函数 time、date 和 difftime 提供了所有的日期和时间功能。

在 OpenResty 的世界里,不推荐使用这里的标准时间函数,因为这些函数通常会引发不止一个昂贵的系统调用,同时无法为 LuaJIT JIT 编译,对性能造成较大影响。推荐使用 ngx_lua 模块提供的带缓存的时间接口,如 ngx.today, ngx.time, ngx.utctime, ngx.localtime, ngx.now, ngx.http_time,以及 ngx.cookie_time 等。

作者:Albert.Wen  添加时间:2019-01-31 11:17:53  修改时间:2024-11-25 07:58:26  分类:11.PHP基础  编辑

将 空字符串 转为 数组时,有 业务bug,如

$str = "";
$arr = explode(",", $str);
print_r($arr);

输出:

Array
(
    [0] => 
)
作者:Albert.Wen  添加时间:2018-07-16 17:45:45  修改时间:2024-11-28 19:34:30  分类:14.Golang/Ruby  编辑

Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp socket实现的。

作者:Albert.Wen  添加时间:2019-04-10 23:33:27  修改时间:2024-12-02 00:12:38  分类:15.OpenResty_Lua  编辑

unpack()函数

可以使用table.unpack()函数,将数组形式的table拆开。

这个函数有三个参数,第一个参数就是要拆的table,第二个参数是起始元素的下标,默认为1,第三个参数是结束元素的下标,默认为table的长度。

例如:

local tbl = { 2, 4, 6, 8 }
local a, b, c, d = unpack(tbl)
作者:Albert.Wen  添加时间:2019-03-31 00:05:58  修改时间:2024-11-29 03:07:54  分类:15.OpenResty_Lua  编辑

在 Lua 5.1 语言中,元表 (metatable) 的表现行为类似于 C++ 语言中的操作符重载,例如我们可以重载 "__add" 元方法 (metamethod),来计算两个 Lua 数组的并集;或者重载 "__index" 方法,来定义我们自己的 Hash 函数。Lua 提供了两个十分重要的用来处理元表的方法,如下:

  • setmetatable(table, metatable):此方法用于为一个表设置元表。
  • getmetatable(table):此方法用于获取表的元表对象。
作者:Albert.Wen  添加时间:2019-03-31 00:43:18  修改时间:2024-12-03 08:57:56  分类:15.OpenResty_Lua  编辑

旧式的模块定义方式是通过 module("filename"[,package.seeall])* 来显式声明一个包,现在官方不推荐再使用这种方式。这种方式将会返回一个由 filename 模块函数组成的 table,并且还会定义一个包含该 table 的全局变量。

作者:Albert.Wen  添加时间:2017-10-26 14:30:52  修改时间:2024-12-01 13:58:05  分类:Linux基础  编辑

cp 貌似没有排除目录的功能,可以使用 rsync 命令来实现了,如:

【案例】

/home/52php目录里面有data目录,data目录里面有 a、b、c、d、e 五个目录,现在要把data目录里面除过 a、b、c 目录之外的所有目录拷贝到/bak目录中。

作者:Albert.Wen  添加时间:2019-03-31 16:10:47  修改时间:2024-12-03 05:51:26  分类:15.OpenResty_Lua  编辑

在 OpenResty 的体系中,可以通过共享内存的方式完成不同工作进程的数据共享,可以通过 Lua 模块方式完成单个进程内不同请求的数据共享。如何完成单个请求内不同阶段的数据共享呢?最典型的例子,估计就是在 log 阶段记录一些请求的特殊变量。

作者:Albert.Wen  添加时间:2017-10-18 17:17:12  修改时间:2024-12-02 16:16:23  分类:14.Golang/Ruby  编辑

context是Go中广泛使用的程序包,由Google官方开发,在1.7版本引入。它用来简化在多个go routine传递上下文数据、(手动/超时)中止routine树等操作,比如,官方http包使用context传递请求的上下文数据,gRpc使用context来终止某个请求产生的routine树。由于它使用简单,现在基本成了编写go基础库的通用规范。笔者在使用context上有一些经验,遂分享下。