IM系统数据库设计
http://www.52im.net/thread-812-1-1.html
https://juejin.im/post/5bcf3d4e51882577c758d0df
数据统计sql语句 子查询...
-----------------------------------------------------------------------------------------------
1. jsonp $.ajax写法
2.mysql innodb myisam区别
3.redis优化方法
4. mysql 索引 B+tree
5. git reset HEAD
6. crontab 分 时 日 月 星期 user command
7. select/epoll
8.mysql数据类型
9.邮箱正则表达式
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
10.redis/memcache各自 优缺点
HttpHeader的一些字段, 主动断开连接是什么字段?
Connection: close (https://www.jianshu.com/p/91f6f7372333)
ORM原理
MySQL连接池
路由、controller URL分发原理
php框架主要帮助我们做了哪些事情?
redis在项目中的应用
单点登录实现
用哪些组件输出log,在哪些地方打什么样的log?
------------------------------------------------------------------------------
绝对路径转化为相对路径
<?php /** * $path相对于$base的相对路径 * @param string $base * @param string $path */ function abs2rel(string $base, string $path) { if (is_dir($base)) { $base = rtrim($base, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . "."; } $a = explode(DIRECTORY_SEPARATOR, $base); $b = explode(DIRECTORY_SEPARATOR, $path); $d = []; // $path push $i = count($a)-1; $sliceEquals = function($a, $b, $j) { if ($j >= count($a) || $j >= count($b)) { throw new Exception('$j out of range'); } for ($i = $j; $i >= 0; $i--) { if (strcmp($b[$i], $a[$i])!==0) { return false; } } return true; }; // 找到a,b数组元素相同的下标 while (array_pop($a)) { $i = count($a)-1; if (isset($b[$i])) { if ($sliceEquals($a, $b, $i)) { break; } } array_push($d, ".."); } // 从首个不同元素开始 for ($i+=1; $i < count($b); $i++) { array_push($d, $b[$i]); } return ".".DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR, $d); }
联合索引哪些有效
如果对多列进行索引(组合索引),MySQL仅能 对索引最左边的前缀 进行有效的查找。
链表逆顺序 包含头节点
数组合并哪几种方式
------------------------------------------------------------------------------
1. 负载均衡 [TO BE DONE]
2. 索引的建立 和查询 以及索引场景建立
alter table `config` add index idx_config_name(`name`);
show index from `config`;
3. thinkphp的路由 [ONGOING]
https://www.kancloud.cn/manual/thinkphp5/118030
./application/route.php
4.PHP中一些常用的spl函数 [TO BE DONE]
http://php.net/manual/en/book.spl.php
5.mysql的主从分离 对id进行hash 理解hash
6.linux的一些常用命令 熟悉linux
7. 递归 n!
8. php单例模式
9. mysql 分表
10. CAS认证, ucenter认证
11.SQL注入,是怎么注入的,自己写一个能够实现sql注入的代码
12.htmlspecialchars(), strip_tags(), add_slashes()详细用法
13.php链式操作
14.php7新特性
15.jsonp
16.RSA非对称加密算法
17. 一元秒杀, (大量访问, 以及秒杀思路)
18.手机充值卡有一串数字(3567892099)后面用户如果在后面恶意的一个一个试充值数字,
恰好出来一个, 怎么防止这种情况的发生
19. 银行, 支付宝都是用数字证书也就是ssl(https)基于传输层的加密
20. XSS攻击预防
21.restful
22.抽奖算法
23.加密认证
24.ajax方法中get和post的区别
25.百度数据爬虫的思路
26.微服务
27.sphinx全文检索的原理
---------------------------------------------爬虫相关的问题---------------------------------------------------
* php程序发送http请求
- curl
$ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => 'https://www.baidu.com', CURLOPT_HEADER => 1, CURLOPT_RETURNTRANSFER => 1 ]); $data = curl_exec($ch); curl_close($ch); echo $data.PHP_EOL;
-socket
* mysql存储引擎 myisam / innodb select count(*) ... 用哪个存储引擎快
MyISAM会保存表的总行数,select count(*)在MyISAM存储引擎中执行,MyISAM只要简单地读出保存好的行数即可。
InnoDB存储引擎不会保存表的具体行数,因此,在InnoDB存储引擎中执行这段代码,InnoDB要扫描一遍整个表来计算有多少行。
* mysql 函数pconnect/connect
mysql_pconnect — Open a persistent connection to a MySQL server
* linux shell 定时器 脚本
crontab
* 投票限制 每人每分钟3次,每人每小时10次; 每个IP每分钟30次,每天100次
* 爬虫架构
* php实现一个跨请求的队列 (redis?)
* 上传文件安全限制
* "Hello world Blog Control" 字符串按空格分隔,分成数组,全部转化为小写,按字母顺序排
(php sort 和javascript的sort方法不同 不传回调用SORT_STRING )
<?php class TestArrayObject { private $s = ""; public function __construct($s) { $this->s = $s; } public function run() { $ao = new ArrayObject(array_map(function($word) { return strtolower($word); }, explode(' ', $this->s))); $ao->uasort(function($a, $b) { return strcmp($a, $b); }); return $ao->getArrayCopy(); } } $o = new TestArrayObject("Hello world Blog Controll Hola Hi Shalom"); $a = $o->run(); var_dump($a);
TestArrayObject.php
---------------------------------------------/爬虫相关的问题---------------------------------------------------
题目截图:
* 学习路线图
modern-backend-develop-2018