php 笔试题汇总

正则表达式验证邮箱

!preg_match(“/^[0-9a-zA-Z-]+@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+){1,3}$/”,$email)

传值和传引用的区别

按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。

SESSION 与 COOKIE的区别

1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户
2、SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。Session依赖于cookie进行传递。
禁用cookie后,session不能正常使用。Session的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。Session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。Session文件是公有的。

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

mb_substr(‘中午ab希望‘,2)

PHP中如何判断一个字符串是否是合法的日期模式

date(‘Y-m-d H:i:s‘,strtotime($data)) == $data

数据过滤

做一般表单提交的时候完全可以用strip_tags去除html标签
htmlentities这个函数转换所有含有对应“html实体”的特殊字符,比如货币表示符号欧元英镑等、版权符号等
htmlspecialchars 只是把某些特殊的字符转义了, & " ‘ < >

缓存一致性问题

缓存更新套路:
失效:应用程序先从cache取数据,没有得到,则从数据库中取数据,成功后,放到缓存中。
命中:应用程序从cache中取数据,取到后返回。
更新:先把数据存到数据库中,成功后,再让缓存失效。

相关文章