百度糯米php笔试题.doc
1.一条数据有开始时间(start_time)和结束时间(end_time)在表中是一条记录,现在需要往表中再写入一条数据,但是新写入的一条数据不能与现有数据的开始时间和结束时间有交集。请问如何实现?答:如果一条数据的开始时间为a结束时间为b另一条数据写入时间为c结束时间为d那么:if(capple[1]=>orange[2]=>carrot[3]=>apple[4]=>greenbeans)5.array_key_exists与in_array区别答:前者是检查给定的键名或索引是否存在于数组中;后者是:检查数组中是否存在某个值6.htmlspecialchars()函数作用是什么?答:将特殊字符转成HTML的字符串格式“(双引号)转成(大于)转成7.以一个数组形式给定一个QQ号码列表,寻找每个QQ号码的“重复规则”,7654321A4323211AB5723723ABC8.流量切分问题:每次请求都有一个唯一且随机的用户ID,切分出总流量的30%用户9.将字符串“Weareclever.”中的空格替换为“%20”,要求代码简洁,可读性高,考虑时间复杂度和空间复杂度。答:$str=“Weareclever.”;Echostr_replace(“”,”%20”,$str);10.求数组中出现次数超过一半的数字。例如:输入一个长度为9的数组[3,6,9,8,7,6,6,6,6],6在数组中出现了5次,超过数组长度的一半,因此所求的数字就是6.11.请写一个函数验证电子邮件的格式是否正确答:functioncheckEmail($email){$pregEmail=“/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i“;returnpreg_match($pregEmail,$email);}12.解释一下什么是单例模式?并描述一下单例模式在php中的应用场景?答:单例模式:一个类只有一个实例应用场景:实例mysql的连接13.对于大流量的网站,您采用什么样的方法来解决访问量问题?首先,确认服务器硬件是否足够支持当前的流量其次,优化数据库访问。第三,禁止外部的盗链。第四,控制大文件的下载。第五,使用不同主机分流主要流量第六,使用流量分析统计软件14.php中如何实现异步答:Php+ajax15.php的缓存机制有哪些?答:普遍缓存技术:数据缓存:数据库查询php缓存机制(访问页面检测缓存数据是否存在,否的话就连接数据库查数据)页面缓存:每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件时间触发缓存:检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。内容触发缓存:当插入数据或更新数据时,强制更新PHP缓存机制。静态缓存:指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面。内存缓存:Memcached是高性能的,分布式的内存对象PHP缓存机制系统,用于在动态应用中减少数据库负载,提升访问速度。php的缓冲器等等