欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  头条

PHP 安全经验相关面试题10大问题总结

程序员文章站 2022-03-01 13:47:56
...
相关推荐:《2019年PHP面试题大汇总(收藏)

1 MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。
b. 选择合适的表字段数据类型和存储引擎,适当的添加索引。
c. mysql库主从读写分离。
d. 找规律分表,减少单表中的数据量提高查询速度。
e。添加缓存机制,比如memcached,apc等。
f. 不经常改动的页面,生成静态页面。
g. 书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE.

2 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题

a. 确认服务器是否能支撑当前访问量。
b. 优化数据库访问。
c. 禁止外部访问链接(盗链), 比如图片盗链。
d. 控制文件下载。
e. 使用不同主机分流。
f. 使用浏览统计软件,了解访问量,有针对性的进行优化。

3 写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把标记及其内容都去掉)

答:

PHP

/<[^>].*?>.*?<\/>/si

4 用PHP打印出前一天的时间格式是2006-5-10 22:21:21

答:echo date('Y-m-d H:i:s', strtotime('-1 day'));

5 echo(),print(),print_r()的区别

答:echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象

6 如何实现字符串翻转?

答:.用strrev函数呗,不准用PHP内置的就自己写:

strrev($str)  
{  
    $len=strlen($str);  
    $newstr = '';  
    for($i=$len;$i>=0;$i--)  
    {  
        $newstr .= $str{$i};  
    }  
    return $newstr;  
}

7 实现中文字串截取无乱码的方法。

答:mb_substr()

8 如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?

答:$_SERVSR[‘REQUEST_URI’] , $_SERVER[‘REMOTE_ADDR’]

9 求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

答:(strtotime(‘2007-3-6’)-strtotime(‘2007-2-5’))/3600*24

10 如何通过javascript判断一个窗口是否已经被屏蔽

答:获取open()的返回值,如果是null,就是屏蔽了