PHP高级工程师的需知道的

1. 基本知识点

* HTTP协议中几个状态码的含义:503 500 401 200 301 302
503:请求超时 500:内部服务错误,一般是php程序错误导致 401:未受权访问  200 :正确响应 301::永久重定向 302:临时重定向
* Include require include_once require_once 的区别.
include与require区别:
include包含文件可以return返回值,require不能 ;
require 不能在控制结构中根据条件的不同而包含不同的文件。require()语句只会在第一次执行时调用它所包含的文件中的内容替换本身这条语句,当再次被执行 时只能执行第一次所包含的语句。但是include()语句可以在循环体中来包含不同的文件,所以php解析器每次遇到include()语句时,对它进 行重新处理。
在程序中只要有require,就会被包含,即使你在一个非真的if语句里,所以require一般都放在程序的最头部,
require()语句在PHP程序执行前就会将使用require引用的文件读入,如果requrie包含文件出错,程序会中止,include语句只有在被执行时才会读入要包含的文件,如果include包含文件出错,程序会跳过错误,继续执行
include_once与include(require_once与require) 区别
include_once会检查是否在其它地方导入过,有导入过则不在重复导入,这样可以避免函数或变量重复定义的错误,而include会无限数导入,
require_once同上
* PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等。
mysql4.1 改进了子查询(MyIsam用了R-trees) 5.0增加了存诸过程 视图 游标 5.1 有触发器,约束,InnoDB外键等改进
php5主要增强了oo特性,比如构造/析构函数,类中属性和方法的类型 (public,private,protected)一些魔术方法(__call,__set,__get等),接口等
* HEREDOC介绍
* 写出一些php魔幻方法;
* 一些编译php时的configure 参数
prefix,with-config-file ,with-mysql , with-myqli,with-gd,with-curl,with-iconv,with-mbstr等
* 向php传入参数的两种方法。
get , post
* (mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;
int:数字型  范围: -2147483648 to 2147483647
cahr:固定长度字符串
varchar :可变长度字符串
datetime : 0000-00-00 00:00:00 时间类型
text : 超长字符串,可存2^16-1字节
varchar与char区别:一个固定,一个可变,所以char一般情况下所占空间更大,但查询更快(不需要计算字符串长度)
* error_reporting 等调试函数使用
一般在生产环境上设置为:error_reporting(0)用来不显示错误,开发环境设置为:error_reporting(E_ALL)用来显示所有错误
* 您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?
用过,subsvn
* posix和perl标准的正则表达式区别;
perl正则表达式更丰富
* Safe_mode 打开后哪些地方受限.
会影响到 system,passthru,exec,shell_exec,popen,phpinfo等等大部分的文件操作函数。
* 写代码来解决多进程/线程同时读写一个文件的问题。
* 写一段上传文件的代码。
* Mysql 的存储引擎,myisam和innodb的区别。

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

* 介绍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, 输出最后那个大王的编号。用程序模拟该过程。

3. unix/linux 基本使用

* 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调试工具。

更多相关文章
  • 每个Linux管理员应该知道的20个Linux系统监视工具51CTO技术论坛 systemerror译 需要监视Linux服务器的性能?试试这些内置的命令和一些附加的工具吧.大多数Linux发行版都集成了一些监视工具.这些工具可以获取有关系统活动的信息的详细指标.通过这些工具,你可以发现产生系统性能 ...
  • 10件开发者和老板都要知道的HTML5的那些事 1. HTML5 标签没什么大不了的. 理解这句话你需要先了解HTML5.它仅仅是一个html4.01的一个升级版本?或者是它是完全不同的新版本(无处不在的大肆宣传可能会让你有这种感觉)?答案是两种理解都有部分正 确.HTML 5包括许多简化和附加的网 ...
  • 软件架构师是IT 行业里独一无二的职业,既要精通软件开发技术,又要掌握业务知识,还要周旋于公司不同部门之间,协调各种予盾.做到这些绝非易事, 博文视点 即将翻译出版的新书<软件架构师应该知道的97 件事>(97 Things Every Software Architect Should ...
  • 该系列文章从关于C#,你应该知道的2000件事情翻译6. 用Reverse方法反转一个字符串string funnyMan = "Roscoe Arbuckle"; string backwardsGuy = new string(funnyMan.Reverse().ToArr ...
  • 5种你未必知道的JavaScript和CSS交互的方法原文来自:http://www.webhek.com/ways-css-javascript-interact  随着浏览器不断的升级改进,CSS和JavaScript之间的界限越来越模糊.本来它们是负责着完全不同的功能,但最终,它们都属于网页 ...
  •  查看文章  Linux系统管理员应该知道的20个系统监控工具(原创翻译)2010-01-29 17:04原文:http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html翻译:飞哥 (http://hi.baidu.com/imlida ...
  •  一名前端工程师(无论工作年头长短)在没有任何外来帮助的情况应该知道的.DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动.DOM操作——怎样添加.移除.移动.复制.创建和查找节点.事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别.XMLHttpRequest——这 ...
  • 关于IPv6你需要知道的10件事1.IPv6地址是128位十六进制数IPv4地址是有4个数字位组(总共32位)组成的,IPv6地址的长度时128位,而且是由16进制字符组成的.在IPv4中,每个位组由0-255的十进制数字组成,位组之间由英文的句号隔开,IPv6地址由8个为组组成,每个位组由4个字符 ...
一周排行