画江湖之面试篇 [第二篇] tip:学习是一个过程,不能急躁

krisji 带你分析以往php面试题,各位小伙伴们赶紧上车咯~

第一题:防止盗链

这道题呢?主要考察的是安全防护

1.服务器上防止
Apache 和 nginx 做 rewrite 基于源来做判断阻止盗链
2.代码防止
$_SERVER[HTTP_REFERER]

第二题:用 PHP 写出一个安全的用户登录系统需要注意哪些方面

这道题呢?主要考察的是安全防护

1.服务器
https://www.baidu.com 443 ssl 安全套接字层 服务器证书 
2.用户注册
注册验证尽量交给 php,而不交给 js
3.用户登录
验证码(图片+语音)
4.以 post 提交给后端 php 程序

第三题:使用过哪些 PHP 框架。试描述其优劣点

这道题呢?主要考察的是你用过的框架的理解把

1)thinkphp  国内使用比较多 文档社区丰富
2)ci  比较轻量 使用便捷
3)yii 
4)laravel 全球使用率极高 但是中文文档比较少 不过有我们laravel china 社区@summer 站长 还是不错的 狠先进的php7 设计模式

第四题:输出为 Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句 是:

这道题呢?考的是基础把 B

A. $_SERVER['HTTP_USER_AGENT_TYPE'];
B. $_SERVER['HTTP_USER_AGENT'];
C. $_SERVER['USER_AGENT']; 
D. $_SERVER['AGENT'];

第五题:执行下面的代码后,

<?php
echo function_exists('print');
?>

这道题呢?主要看基础 Echo print array eval list 语言结构 记住 **

echo false 是null echo true 是1

第六题:下面代码的输出正确的是:

<?php
$a = array(1=>5,5=>8,22,2=>'8',81); echo $a[7];
echo $a[6];
echo $a[3];

这道题呢?主要看对数组的理解 A. 空 2281 B.空 8122 C.8122 空 D.空空空

答案是C php 数组中 如果有一个人下标没标注 那么就是这个数组中最大的下标+1

第七题:SESSION 与 COOKIE 的区别是什么,请从协议,产生的原因与作用说明:

这道题呢?主要考察的是会话的理解

1) http 无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页
面不能看做是同一个用户
2) SESSION 保存在服务器端,COOKIE 保存在客户端,SESSION 依赖 COOKIE 进行传 sessionId
输,如果 COOKIE 被禁用了,SESSION 将不能继续使用

第八题:Linux 下建立压缩包,解压缩包的命令?

这道题呢?主要考察的是linux的基础操作

1) tar czf test.tar.gz test.php
2) tar xzf test.tar.gz

第九题:写出匹配 URL 的正则表达式?

这道题呢?主要考察的是正则的掌握

‘/^(https?|ftps?):\/\/(www)\.([^\.\/]+)\.(com|cn|org)(\/[\w-\.\/\?\%\&\=]*)?/i’

第十题:在数据库 test 中的一个表 student,字段是 name,class,score。分别代表姓名、所 在班级,分数

这道题呢?主要考察的是对sql 的掌握

1) 算出每个班级中的学生,按照成绩降序排序;
select name,class,score from student order by class,score desc;

2) 查出每个班的及格人数和不及格人数,格式为:class、及格人数、不及格人数;

SELECT class,
SUM(CASE WHEN score>=60 THEN 1 ELSE 0 END),
SUM(CASE WHEN score<60 THEN 1 ELSE 0 END)
FROM tb1 GROUP BY class
这边主要先分组 在聚合在加入判断条件

3) 用 PHP 写入连接数据库("localhost","msuser","mspass")、执行以上 SQL、显示结果、 判断错误、关闭数据库的过程
$conn=mysql_connect(‘localhost’,'msuser ’,’mspass′);//链接数据库
Mysql_select_db(‘test’);
$sql=" SELECT class,
SUM(CASE WHEN score>=60 THEN 1 ELSE 0 END), SUM(CASE WHEN score<60 THEN 1 ELSE 0 END)
FROM tb1 GROUP BY class";
if($result=Mysql_query($sql)){
     while($row=mysql_fetch_assoc($result)){
     print_r($row);
} }
Mysql_close($conn);
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

如果 COOKIE 被禁用了,SESSION 将不能继续使用?

5年前 评论
任飘渺

当然可以使用

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!