PHP Interview Questions(2)

面试时间:2018 年 9 月 4 日,星期二,下午两点。


PHP

1. 列举出几种你知道的 PHP 遍历或者迭代数组的方法

for, foreach, array_walk, array_map

安全防护

2. 解释什么是 XSS,CSRF,SQL 注入以及如何防范

http://www.cnblogs.com/leecong/p/5898370.html

网络

3. 在浏览器中输入网址到页面显示,期间发生了哪些过程?

http://www.cnblogs.com/kongxy/p/4615226.html

数据库

4. 一张采用 Innodb 的 User 表,其中 id 为主键,name 为普通索引,试从 索引的数据结构 角度分析,以下两条语句(均返回一条记录)在检索过程中有哪些区别?

Sql 1: SELETE id, name, address from User where name = "smith";
Sql 1: SELETE id, name, address from User where id = 1;
http://blog.codinglabs.org/articles/theory-of-mysql-index.html

5. 现有一统计网站独立访客需求,流量百万以上,如以 IP 为标识,可以查看当天实时或指定某天的 IP 数(需要去重),采用 MySQL 来实现,那么:

5.1 你会如何设计表和索引?(文字、sql 均可,方案尽可能高效)

IP 地址转换为整形存储,按日期分表,以 (IP, 日期) 作为联合索引。

5.2 数据如何入库,当天实时和某天数据该如何查询?(写出 sql 语句)

redis 队列缓存 -> MySQL 批量入库

select count(ip) from visit_log_{yyyymm} where date = {yyyy-mm-dd};

面试部分

你平时都是怎么设计数据库的?

按照业务逻辑设计(其实想考察的是数据库三大范式)。

说说 PHP 的垃圾回收机制。

http://php.net/manual/zh/features.gc.php

 570 total views,  1 views today

Leave a Reply

Your email address will not be published. Required fields are marked *