您好,欢迎访问三七文档
PHP工程师面试题1.echocount(“abcd”);输出多少?intcount(mixedvar)返回单元数目,通常是一个array,任何其他类型都只有一个单元,有一个例外,如果var是null结果是02.$a=$b=$c=0;$a=$b&&$c;运行以上代码后$a$b$c分别是?$a=false$c=0$b=02.PHP打印出前一天的时间,格式是2011-12-2922:21:21echodate('Y-m-dH:i:s',strtotime('-1day'));strtotime将任何英文文本的日期时间解析成时间戳4.请用php的heredoc语法格式输出:helloworld!?phpechoEOThelloworld!EOT;5.$string=abcdefg,那么$string{4}的值是?$string{4}=e因为PHP是弱类型语言,可以将字符串“视为数组”,当做字符集合看待,字符串中的字符可以在字符串之后用花括号指定所要字符从零开始的偏移量来访问和修改。6.简述echo(),print(),print_r()的区别。echo,print是PHP语言结构,print_r是函数,语言结构没有返回值,函数可以有返回值(即便没有用)print只能打印出简单类型变量的值(如int,string)print_r可以打印出复杂类型变量的值(如数组,对象)7.用PHP写出显示客户端IP与服务器IP的代码。客户端:$_SERVER[REMOTE_ADDR]服务器:$_SERVER[SERVER_ADDR]8、用正则表达式判断$a是否是一个以半角逗号分隔的多个手机号码组成的字符串,是输出yes?php$phone='13725439919,18588421409,18817006902';$pattern='/^(1[34568]\d{9},)+(1[34568]\d{9})?$/';if(preg_match_all($pattern,$phone,$out)){echo'yes';}else{echo'no';}echo'pre';print_r($out);9、解释MVC,介绍几种目前比较流行的MVC框架由模型(model),视图(view),控制器(controller)完成的应用程序MVC模式的目的就是实现Web系统的功能分工,它强制性地把应用程序的输入、处理和输出分开,可以各自处理自己的任务,是一种分层的概念。Model层实现系统中的业务逻辑,View层用于与用户的交互,Controller层是Model和View之间沟通的桥梁。CI框架:CI优点是简单易用、性能和速度好。但是不太适合做大型网站。YII框架:YII框架基于组件、用于开发大型web应用的高性能PHP框架,它的重用性好。缺点是:耦合度高。Symfony:是为开发大型web准备的,学习曲线比较长。Laravel:简洁、优雅。10、描述一下大流量高并发网站的解决方案1)LVS或nginx负载均衡器,通过负载均衡把压力分担到多台服务器.2)squid缓存或nginxwebcache缓存3)web服务器选型(nginx代替apache)4)页面静态化(smarty或框架),数据缓存(memcacheRedis)5)memcache6)sql语句一定要注意索引使用7)主从数据库8)分库分表或分区主要从以下几个方面回答:1、硬件1)垂直拓展:买更好的服务器。一般不建议这么做,因为单个服务器都有上限2)水平拓展:多买几台服务器,利用负载均衡器(LVS、F5),将压力分担到不同服务器上。2、数据库a)数据库优化:1、分表和分区2、主从数据库b)数据库的选型:可以考虑将apache换成nginxc)SQl语句优化3、缓存a)数据缓存:使用memcacheB)页面静态化:框架的页面静态化、smartyC)使用CDN参考答案:1、硬件购买更好的服务器,这种是纵向扩展,但是不太推荐。购买更多的服务器,利用LVS或者F5搭建服务器集群。从而提高整个网站的计算速度。2、web服务器由于Apache的并发处理能力有限,所以可以考虑使用Nginx。3、数据库Mysql要结合NoSQL使用,由于单个数据库能力有限,所以要搭建主从数据库。4、缓存a)为了减小数据库的压力,考虑使用Memcache或Redis做缓存。b)把网站的绝大多数页面进行页面静态化。(phpcms)c)把静态资源放到CDN上。5、禁止外部的盗链6、控制大文件的下载11、如何防SQL注入//表单尽量用post提交,核心用户验证都走post,避开get1、表单尽量用post,表单判断控制走get,因为get比post速度快2、$_SERVER[HTTP_REFERER]判断提交者的源头,只能本站提交。3、使用addslashes转义用户提交的数据4、服务器本身的安全5、数据库使用PDO,因为PDO有预处理12、如何实现多台web服务器共享session数据1、改变session的域,比如域名是、使用数据库或者memcache存储session数据
本文标题:PHP面试题答案
链接地址:https://www.777doc.com/doc-2850477 .html