【转】php面试题整理

http://www.nowamagic.net/librarys/veda/detail/1936

 

整理了一份PHP高级工程师的笔试题,问题很全面。嗯,基本上这些题都答得不错,那么你应该可以胜任大部分互联网企业的PHP职位了。下面直接上题。

1. 基本知识点

  1. HTTP协议中几个状态码的含义:503,500,401,200,301,302。。。
  2. include,require,include_once,require_once 的区别。
  3. PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等。
  4. HEREDOC介绍。
  5. 写出一些php魔术方法。
  6. 一些编译php时的configure 参数。
  7. 向php传入参数的两种方法。
  8. (mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;
  9. error_reporting 等调试函数使用。
  10. 您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?
  11. posix和perl标准的正则表达式区别。
  12. Safe_mode 打开后哪些地方受限。
  13. 写代码来解决多进程/线程同时读写一个文件的问题。
  14. 写一段上传文件的代码。
  15. Mysql 的存储引擎,myisam和innodb的区别。

2. web 架构,安全,项目经验

  1. 介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。
  2. 使用mod_rewrite,在服务器上没有/archivers/567.html这个物理文件时,重定向到index.php?id=567 ,请先打开mod_rewrite.
  3. MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

优化应该不仅仅是数据库方面
使用高性能的服务器
多使用缓存
页面服务器、数据库服务器、图片服务器、上传下载服务器分离
数据库集群,表分割(水平分割和垂直分割)和表散列
负载均衡
重视每个代码开发细节,特别是大循环,多请求和SQL语句复杂的时候

1.代码要干净
2.数据库要分表,可以1个月数据存储一张表:
3.读写分离:写入用一台服务器,然后同步到另外的服务器进行读出。
4.如果有图片,建议有专门图片服务器,使用独立域名访问
5.网站前台和后台如果有条件尽量分开

综合分析 在这么大的数据量的情况下 这也是最普遍的做法和解决之道

 

 

  1. 写出一种排序算法(原理),并说出优化它的方法。
  2. 请简单阐述您最得意的开发之作

 

  1. 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题
  2. 首先,确认服务器硬件是否足够支持当前的流量。

    其次,优化数据库访问。

    第三,禁止外部的盗链。

    第四,控制大文件的下载。

    第五,负载均衡,使用不同主机分流主要流量。

    第六,使用流量分析统计软件,针对问题做进一步的优化。

 

 

  1. 您是否用过模板引擎? 如果有您用的模板引擎的名字是?
  2. 请介绍Session的原理,大型网站中Session方面应注意什么?
  3. 测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。
  4. 正则提出一个网页中的所有链接.
  5. 介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。
  6. 您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。
  7. 大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?
  8. 相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。
  9. 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。

3. unix/linux 基本使用

  1. linux下查看当前系统负载信息的一些方法。
  2. vim的基本快捷键。
  3. ssh 安全增强方法;密码方式和rsa key 方式的配置。
  4. rpm/apt/yum/ports 装包,查询,删除的基本命令。
  5. Makefile的基本格式,gcc 编译,连接的命令,-O0 和-O3区别。
  6. gdb,strace,valgrind的基本使用.

4. 前端,HTML,JS

  1. css盒模型。
  2. javascript中的prototype。
  3. javascript中this对象的作用域。
  4. IE和firefox事件冒泡的不同。
  5. 什么是怪异模式,标准模式,近标准模式。
  6. DTD的定义
  7. IE/firefox常用hack.
  8. firefox,IE下的前端js/css调试工具。

你可能感兴趣的:(PHP)