php 安全方面面试题

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.

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

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

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

答:

 

PHP

1

/<[^>].*?>.*?<\/>/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是递归打印,用于输出数组对象

如何实现字符串翻转?

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

1

2

3

4

5

6

7

8

9

10

strrev($str

    $len=strlen($str); 

    $newstr = ''

    for($i=$len;$i>=0;$i--) 

    

        $newstr .= $str{$i}; 

    

    return $newstr

}

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

答:mb_substr()

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

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

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

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

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

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

posted @ 2019-04-07 21:13  时间掉飞机  阅读(1166)  评论(0编辑  收藏  举报