画江湖之面试篇 [第二篇] 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 协议》,转载必须注明作者和本文链接
如果 COOKIE 被禁用了,SESSION 将不能继续使用?
当然可以使用