整理了一份PHP高级工程师的笔试题,问题很全面。基本上这些题都答得不错,那么你应该可以胜任大部分互联网企业的PHP职位了。下面直接上题:
1. 基本知识点
- HTTP协议中几个状态码的含义:503,500,401,200,301,302。。。(答案参考这篇文章:深入理解HTTP协议(二)——协议详解篇)
- include,require,include_once,require_once 的区别。(答案参考这篇文章:PHP基础之流程控制9——require/include/require_once/include_once)
- PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等。
- HEREDOC介绍。(答案参考这篇文章:PHP基础之数据类型4——字符串(String))
- 写出一些php魔术方法。(答案参考这篇文章:PHP基础之类和对象15——魔术方法)
- 一些编译php时的configure 参数。(答案参考这篇文章:在Ubuntu中使用源码编译安装Apache+MySQL+PHP开发环境)
- 向php传入参数的两种方法。(答案参考这篇文章:PHP基础之函数2——函数参数)
- (mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;(答案参考这篇文章:MySQL的数据类型详解大全)
- error_reporting 等调试函数使用。(答案参考这篇文章:PHP扩展之错误处理和日志记录)
- 您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(答案参考这两篇文章:Linux中svn安装、配置和使用和版本控制工具 git 使用入门指南)
- posix和perl标准的正则表达式区别。
- safe_mode 打开后哪些地方受限。(参考这篇文章:PHP特点之安全模式2——被安全模式限制或屏蔽的函数)
- 写代码来解决多进程/线程同时读写一个文件的问题。
- 写一段上传文件的代码。(参考这篇文章:PHP特点之文件上传1——使用POST方法上传单文件和多文件)
- Mysql 的存储引擎,myisam和innodb的区别。(参考这篇文章:再谈MySQL存储引擎的选择:InnoDB还是MyISAM)
2. web 架构,安全,项目经验
- 介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。(答案参考这两篇文章:PHP调试利器XDebug的安装与使用——XDebug的简单介绍和可选PHP缓存 APC 浅析——安装、配置及工作原理)
- 使用mod_rewrite,在服务器上没有/archivers/567.html这个物理文件时,重定向到index.php?id=567 ,请先打开mod_rewrite。
- MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
- 写出一种排序算法(原理),并说出优化它的方法。
- 请简单阐述您最得意的开发之作。
- 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题。
- 您是否用过模板引擎? 如果有您用的模板引擎的名字是?
- 请介绍Session的原理,大型网站中Session方面应注意什么?
- 测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。
- 正则提出一个网页中的所有链接。
- 介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。
- 您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。
- 大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?
- 相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。
- 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。
3. unix/linux 基本使用
- linux下查看当前系统负载信息的一些方法。(答案参考这两篇文章:Ubuntu指令大全系列一——linux指令和Ubuntu查看系统的信息命令大全)
- vim的基本快捷键。(答案参考这两篇文章:Ubuntu指令大全系列二——VIM编辑器的使用和简明 Vim 练级攻略)
- ssh 安全增强方法;密码方式和rsa key 方式的配置。
- rpm/apt/yum/ports 装包,查询,删除的基本命令。(答案参考这篇文章:Ubuntu指令大全系列五——软件安装)
- Makefile的基本格式,gcc 编译,连接的命令,-O0 和-O3区别。(答案参考这篇文章:Linux编译安装中configure、make和make install各自的作用)
- gdb,strace,valgrind的基本使用。
4. 前端,HTML,JS
- css盒模型。
- javascript中的prototype。
- javascript中this对象的作用域。
- IE和firefox事件冒泡的不同。
- 什么是怪异模式,标准模式,近标准模式。
- DTD的定义。
- IE/firefox常用hack。
- firefox,IE下的前端js/css调试工具。