记一次面试

1、给定一个字符串str,怎么判断它是否是一个数组arr的键名?

 array_keys_exists($str,$arr)

2、DNS协议怎么工作的?

DNS是应用层协议 ,实现ip与域名的映射,将域名转成对应的IP地址。

3、怎样判断一个数组是否为空?

count($arr)和empty($arr)

4、打开文件的函数是什么?权限该怎么设置?

打开文件:fopen($file,w/w+/r/r+/a/a+) 

fread()读取打开的文件,fclose()关闭打开的文件。

5、PHP中的最大数?如果想要存储一个比这更大的数,该怎么处理?

 输出PHP_INT_MAX即为最大的数。可以用字符串存储

6、XSS攻击

 跨站脚本攻击,指web网页中被植入恶意js代码。

如何防止:过滤js代码 使用htmlspecialchars()函数转义(将特殊的html字符转换为普通字符)。使用csrf_token 指令验签。

7、什么是SQL注入?如何防止?

指把sql命令插入到web表单提交或输入域名或者页面请求的查询的字符串。

防止:使用htmlspecialchars()函数转义(将特殊的html字符转换为普通字符)

           addslashes()函数

           mysqli预处理

           php.ini中magic_quotes_gpc = On  默认是off ,开启为on

8、数据库优化

     1,表设计要规范,符合三范式

     2,选择合适的字段属性,尽量设为not null

     3,使用连接查询(left join/right join/inner join)代替子查询,少使用select * 和like通配符。

     4,建立索引,加快查询速度

     5,事务处理,避免大事务操作

     6,锁定表(维护数据的完整性)

     7,使用外键(保证数据的关联性)

9、redis

    Nosql产品,非关系型数据库

   特点:内存数据库,速度快,读写性能很好,可以持久化(AOF  BDF)

           支持事务,要么全做 要么全不做

           支持的数据类型:string list set hash(符合ASSII二进制的数据)

           支持读写分离

10、apache怎么跑php的?

     apache中加载php模块,添加apache需要处理的文件类型(AddType application/x-httpd-php .php)

11、PHP中的数据类型有哪些?

     三大类:简单型,复杂型,特殊型

     八小类:整型,浮点型,布尔型,字符串型,数组型,资源型,对象型,空型

12、jquery如何实现跨站获取数据?

     通过jquery+ajax进行跨域,其实是采用jsonp(json with padding)

13、apache与nginx

     nginx的优点:轻量级,抗并发,nainx处理请求时异步非阻塞 而apache是阻塞型 

                       在高并发下nginx能保持低资源低消耗高性能

                           负载均衡

     apache的优点:超稳定 bug少 模块多 rewrite强大

14、mysql与mysqli

      mysqli连接是永久连接,而MySQL是非永久连接。

      mysql连接:每当第二次使用的时候,都会重新打开一个新的进程。

      mysqli连接:一直都只使用同一个进程

      好处:mysqli可以很大程度的减轻服务器端压力

      总结:使用mysqli更好

15、怎样实现项目中对mysql的操作连接

     $link = mysqli_connect("localhost","root","root","dbname");

16、你理解的资源型数据是什么?

      资源类型是对外部资源的引用,通过专门的函数来建立句柄。

      最常见的有数据库连接,打开文件等.

 

posted @ 2018-07-29 19:23  JDbeyond  阅读(853)  评论(4编辑  收藏  举报