PHP后台基础知识点整理(草稿,未完)

1. Redis 相关

1.1 Redis的常用数据结构及底层实现

参考官方文档:https://redis.io/topics/data-types-intro

1.1.1 Redis Keys

Redis的Keys是二进制安全的,这个意味着你可以使用任意的二进制序列作为一个key,从像"foo"这样的字符串到一个JPEG文件的二进制内容,都是合法的,空字符串也是合法的key。

 

1.1.2 Redis常用数据结构

  • Binary-safe strings (字符串) 
  • List: 基于linked list,可以存储字符串的列表,和插入的顺序保持一致。(列表)
  • Sets: 保存无序的、唯一的字符串的集合 (无序集合)
  • Sorted sets:保存有序的、唯一的字符串的集合(有序集合)
  • Hashes,哈希结构,field和value都是字符串类型。

底层实现原理:

Sorted Set:通过包含了Hash Table和Skip List(跳表)的混合数据结构来实现。插入的时间复杂度O(log(N))。

 

 

1.2 Redis的持久化是怎么样实现的

 

1.3 Redis主从是怎么实现的

 

1.4 Redis主从是怎么同步的

 

2. MySQL相关

2.1 MySQL存储引擎

 

2.2 索引是什么?

 

2.3 B+树是什么?

 

2.4 分区partition是什么

 

3. Nginx相关

 

4. PHP相关

(1). 踩坑集锦:php浮点数

凡是涉及金额用浮点数的,PHP里计算一律用bcmath
要么就全部转成整数,计算完了再除以100。


php > echo intval("30.00" * 100);
3000
php > echo intval("38.00" * 100);
3800
php > echo intval("38.80" * 100);
3879
php > echo intval(bcmul("38.80", 100));
3880
php > 
bcmath应该是最好的方法

 

(2). strtotime的坑

php > echo date("Y-m-d H:i:s", strtotime("-1 month", strtotime("2017-03-31")));
2017-03-03 00:00:00
php >

 

 

5. Golang相关

 

6. 消息队列

 

7. Web安全

7.1 SQL注入

7.2 XSS注入

7.3 CSRF

 

8. TCP/IP协议

 

9. HTTP协议

 

10. 操作系统内存管理,进程线程

 

11. Memcached

 

12. MongoDB

 

13. JavaScript jQuery React

 

14. Unicode字符编码校验汉字

这里是几个主要非英文语系字符范围(google上找到的):

2e80~33ffh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。

3400~4dffh:中日韩认同表意文字扩充a区,总计收容6,582个中日韩汉字。

4e00~9fffh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。

a000~a4ffh:彝族文字区,收容中国南方彝族文字和字根。

ac00~d7ffh:韩文拼音组合字区,收容以韩文音符拼成的文字。

f900~faffh:中日韩兼容表意文字区,总计收容302个中日韩汉字。

fb00~fffdh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。

而关于中文的正则表达式, 应该是^[\u4E00-\u9FFF]+$, 和论坛里常被人提起的^[\u4E00-\u9FA5]+$很接近

需要注意的是论坛里说的^[\u4e00-\u9fa5]+$这是专门用于匹配简体中文的正则表达式, 实际上繁体字也在里面, 我用测试器测试了下'中華人民共和國', 也通过了, 当然, ^[\u4E00-\u9FFF]+$也是一样的结果

综上所述,用^[\u4E00-\u9FFF]+$来判定是否全部属于汉字。PHP代码为:

php > echo preg_match("/^[\x{4E00}-\x{9FFF}]+$/u", "中国", $matches);
1
php > echo preg_match("/^[\x{4E00}-\x{9FFF}]+$/u", "中国,", $matches);
0
php > 

 

 

转载于:https://my.oschina.net/laiconglin/blog/1590118

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值