整理了一份招PHP高级工程师的面试题
1. 基本知识点
- HTTP协议中几个状态码的含义:1xx(临时响应)
?PHP:简单的表达。MyISAM 是非事务的存储引擎。innodb是支持事务的存储引擎。innodb的引擎比较适合于插入和更新操作比较多的应用而MyISAM 则适合用于频繁查询的应用MyISAM --表锁。innodb--设计合理的话是行锁。MyISAM 不会出现死锁。最大的区别就是MYISAM适合小数据,小并发;INNODB 适合大数据,大并发。最大的区别就是在锁的级别上。MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。 MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。综述,就可以根据数据表不同的用处是用不同的存储类型。而且MyISAM是文件存储的,可以进行直接在不同操作系统间拷贝使用。 InnoDB:InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECTs)。这些特性均提高了多用户并发操作的性能表现。在InnoDB表中不需要扩大锁定(lock escalation),因为 InnoDB 的列锁定(row level locks)适宜非常小的空间。InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY constraints)的表引擎。InnoDB 的设计目标是处理大容量数据库系统,它的 CPU 利用率是其它基于磁盘的关系数据库引擎所不能比的。在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。 InnoDB 把数据和索引存放在表空间里,可能包含多个文件,这与其它的不一样,举例来说,在 MyISAM 中,表被存放在单独的文件中。InnoDB 表的大小只受限于操作系统的文件大小,一般为 2 GB。InnoDB所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,可以拷贝文件或用navicat for mysql。 MyISAM每张MyISAM 表被存放在三个文件 :frm 文件存放表格定义。 数据文件是MYD (MYData) 。 索引文件是MYI (MYIndex) 引伸。因为MyISAM相对简单所以在效率上要优于InnoDB,小型应用使用MyISAM是不错的选择。MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦?
- 介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。使用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, 输出最后那个大王的编号。用程序模拟该过程。
- linux下查看当前系统负载信息的一些方法。vim的基本快捷键。ssh 安全增强方法;密码方式和rsa key 方式的配置。rpm/apt/yum/ports 装包,查询,删除的基本命令。Makefile的基本格式,gcc 编译,连接的命令,-O0 和-O3区别。gdb,strace,valgrind的基本使用.
?
4. 前端,HTML,JS- css盒模型。javascript中的prototype。javascript中this对象的作用域。IE和firefox事件冒泡的不同。什么是怪异模式,标准模式,近标准模式。DTD的定义IE/firefox常用hack.firefox,IE下的前端js/css调试工具。