整理了一份招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数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
  4. 写出一种排序算法(原理),并说出优化它的方法。
  5. 请简单阐述您最得意的开发之作
  6. 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题
  7. 您是否用过模板引擎? 如果有您用的模板引擎的名字是?
  8. 请介绍Session的原理,大型网站中Session方面应注意什么?
  9. 测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。
  10. 正则提出一个网页中的所有链接.
  11. 介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。
  12. 您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。
  13. 大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?
  14. 相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。
  15. 一群猴子排成一圈,按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调试工具。

构造"前进",“后退"按钮能用的Javascript应用

本示例介绍了如何利用window.location.hash()来构造使IE的”前进”和”后退”按钮能用。在网上的很多教程中间,称为使前进,后退按钮能用的AJax教程。
其实,这跟Ajax应用无关。更多的时候,这种场景更适用于弹出层,Tab切换,图片幻灯等。
比如,访问***.html#dialog_1&dialog_2 ,页面会自动弹出两个弹出层,关掉dialog 2,页面地址也会自动换成***.html#dialogg_1. 用户复制这个地址发给好友,好友访问时该弹出层也是显示的。
好了,不多说。因为涉及到Js,我把文件发在这里。请访问
“前进”,“后退”按钮能用的Javascript应用 示例
本系统即将注册成为open source project,敬请关注。

Javascript学习者需要看懂的几个例子

1.关于prototype:这里prototype是javascript的一个特性,不是那个有名的prototype框架:


2.关于变量作用域,和IE,firefox对js的不同处理,这里有几个例子,有几个是原来从别处看到的记的笔记,有的是我自己挖掘出来的.
2.1



2.2



2.3:





2.4





2.5





2.6





2.7





2.8





2.9





2.10



2.11



2.12



2.13



2.14:

注意这三个html文件的结果有什么不同.
a.html:

b.html:

c.html:


2.15
看看IE,firefox下分别运行有何不同:


转型中…

不久前,得知我将会这次项目中负责配置管理,架构协调和JS开发工作和一个模块的PHP的coding。
没想到今天日程安排下来了,我“戏份”最大的,是“Web design”.
于是,前天,昨天我还加班加点地设计如何对数据库散列,如何进行主从同步。。。。刚刚把Hash算法写完,今天中午开始我就开始做页面设计了。。。
少不了要整一个图形处理软件。下了一个盗版的Adodb CS3,但是最终还没没有用,一是我不能在公司用盗版软件,二是……我对PhotoShop的技术还停留在三年多以前,PhotoShop 7.0的认识上。
最后我的解决办法是,在Linux下装上了Wine,在这个模拟环境上安装上了Fireworks MX.很久没有用Wine了,没想到Wine经过几年的发展,已今非昔比了,非常牛B了…
我在Wine下装上了FireWorks,DreamWeaver的30天试用版,另外还装上IE6,再接着装了一个叫Multi-IE的东东,把IE3,IE4,IE5,IE5.5,IE6.0整全了。估计再琢磨一下,能把IE7.0也整上。
谁说Linux上不适合搞设计?看看我的机器…..盗版的Microsoft Office 2007估计跑起来也没有问题…..
晚上折腾到11:15才走,这时已经做了3个Page出来,还是Pure DIV+CSS,不过就没有设计成分,是照着UE部门给的线框图做的,纯体力活。出页面之后还要配合php工程师做Ajax应用,纯js。真是个伟大的转型…会不会过两年之后我会转成卖保险的呢?….

这样也可以戏弄"博邻"

Hoo,发现一个小漏洞:
在博邻(http://www.365bloglink.com/)首页上搜”互联网,请记住我”,然后结果页中是没有结果的。但是有备选项,我选中”搜标题”,再点搜索,就有结果了。然后发现这里的投票是可以重复投票的(点推荐后刷新一次又可以推荐,估计是没有在数据库中记IP)。哈哈,于是我查看源代码,发现“推荐”二字的链接是javascript的,于是复制这一段:

javascript:votePost(‘sa9Yfdjno’, ‘divsa9YfdjnoVote’);

就在这个页面中粘贴到浏览器地址栏中,按回车就发现票数变了。再按回车,再变。一直刷到50票。不过博邻的排名没啥意思,没有成就感。
hoo,漏洞无处不在了。365bloglink还是比较知名的站了,也有js漏洞。
上次live.com邮箱被抢注,也是同样的漏洞。
看来我以后也得记住 ,客户端的js是不可相信的!