第一篇:腾讯php程序员面试题目
腾讯php程序员面试题目
说在前面:
1、以下题目,除了编程任务外其他都需要写在给你提供的草纸上。纸张是珍贵的地球资源,请节约使用。编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了。2、时间:
基础任务+进阶任务+设计任务 = 90分钟 编程任务 = 60分钟 基础任务:
1、请列举你能想到的UNIX信号,并说明信号用途。
2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。
4、写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)
基础任务-选作(会得到额外分数):
1、画几个你最熟悉的SERVER端模型出来(格式不重要,尽量将图画清楚,说明思路即可)进阶任务:
1、PHP的垃圾收集机制是怎样的?
说明:
1)如果,你熟悉PHP源码,那么请从源码入手,回答些问题,会获得额外加分
2)如果,你不熟悉PHP源码,那么尽你所能,多写点东西,包括利用自己的编程直觉得到的信息,都可以。
3)对,则有分,错误不扣,不写无分。2、请写出HTTP头,并符合以下要求:
1)这是一个post请求
2)目标:http://www.xiexiebang.com:8080/test
3)POST变量:
username: test
pwd: test2
intro: Hello world!
4)包含以下COOKIE信息:
cur_query: you&me
说明:
1)如果,你记不得某个HTTP协议中的指令字了,那么,无奈这举是用“汉字”代替。
2)如果,你能记住更多的HTTP协议指令字,那么多写几句,总是没坏处,对吧?
3)最关键的,只需要画出正确的“轮廓”(还记得httpwatch等工具打印出来的头部吗?那就是“轮廓”的含义),也会有分数,但如果,连“轮廓”都写错了,那么就很遗憾了。设计任务:
1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的东东
要求如下:
1)要求每个QQ号码(假设此QQ号码在UNIT32内可以表示)10分钟这内只能投5票。
2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。
说明:
1)无需写代码,只需要图跟文字即可。
2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。
3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。
4)存储部分,尽你所能吧。如果,你需要一个自己设计的存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分。编程任务:
1、我们碰到了大麻烦,一个新来的传教士惹恼了上帝,上帝很愤怒,要求我们把圣经(bbe.txt)背熟,直至他说哪个单词,我们就要飞快的回答出这个单词在第几行第几个单词位置。听说你是个优秀的程序员,那么髟助我们完成这个不可能的任务吧。
要求如下:
1)/myworks/example/bbe.txt,98版本英文圣经一本
2)输入部分要求如下:php./example.php [单词]
3)输出部分如下:[单词] 1,2 2,4 5,6 表示:此单词在1行2列(第二个单词),2行4列...说明:
1)此文本4MB之巨...2)单词的含义:由英文字母(大小写),数字(0-9)组成的串
3)提供给你的机器OS为ubuntu 9.10,内存只有1G,而且,很不幸的,其中700M用来做了别的
4)上机考试不允许上网,但我装了man文档以及读取CHM以及PDF的阅读器,在电脑的桌面的CHM文件夹中,有相应的PHP参考手册
5)算法复杂度要求不能大于O(N^2)(就是N的平方)
6)什么?PHP低效且用起来不顺手,好的,你可以用别的语言来实现。但注意:提供给你的机器上只有python 2.4/perl 5.8/gcc[g++] 4.1
第二篇:PHP程序员面试题目
流行的php面试题及答案
1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。答:echo $_SERVER['PHP_SELF'];echo $_SERVER[“HTTP_REFERER”];2.执行程序段将输出(3)。答:0 3.在HTTP 1.0中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(5)。答:(4)未授权(5)header(“HTTP/1.0 404 Not Found”);4.数组函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。答:(6)对数组进行逆向排序并保持索引关系(7)All errors and warnings 5.写出一个正则表达www.xiexiebang.com式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
答:(10)LoadModule php5_module “D:/xampp/apache/bin/php5apache2.dll”(11)AddType application/x-httpd-php-source.phps AddType application/x-httpd-php.php.php5.php4.php3.phtml 7.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为www.xiexiebang.com了避免多次包含同一文件,可以用语句(13)来代替www.xiexiebang.com它们。
答:(12)发生异常时include产生警告require产生致命错误(13)require_once()/include_once()8.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。
答:serialize()/unserialize()9.一个函数www.xiexiebang.com的参数不能是对变量的引用,除非在php.ini中把(15)设为on.答:allow_call_time_pass_reference 10.SQL 中LEFT JOIN的含www.xiexiebang.com义是(16)。如果 tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可www.penqiang.net以用SQL语句(17)。
答:(16)自然左外连接(17)select name , count(score)as sum_score from tbl_user left join tbl_score on tbl_user.ID=tbl_score.ID group by tbl_user.ID 11..在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。答:结束标识符所在的行不能包含任何其它字符除“;” 12.用PHP打印出www.516fc.net前一天的时间格式是2006-5-10 22:21:21 答:echo date('Y-m-d H:i:s', strtotime('-1 day'));13.echo(),print(),print_r()的区别
答:echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象 14.如何实现字符串翻转?
答:.用strrev函数呗,不准用PHP内置的就自己写:
strrev($str){
$len=strlen($str);$newstr = '';for($i=$len;$i>=0;$i--){ $newstr.= $str{$i};
} return $newstr;} 15.实现中文字串截取无乱码的方法。答:mb_substr()16.使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 表名User Name
Tel
Content
Date 张三
***
大专毕业
2006-10-11 张三
***
本科毕业
2006-10-15 张四
021-55665566
中专毕业
2006-10-15
答:SELECT Name,Tel,Content,Date FROM User WHERE Name='张三' 17.如何使用下面的类,并解释下面什么意思?
class test {
Get_test($num){ $num=md5(md5($num).“En”);
return $num;
} } 答:用法: $get_test = new test();$result = $get_test->Get_test(2);
将$num变量进行两次md5后返回,第2次的md5中的参数,在第一次md5($num)后多加了En 18.使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出.jpg 或者 jpg,答:使用五种以上方式获取一个文件的扩展名 1)get_ext1($file_name){ return strrchr($file_name, '.');} 2)get_ext2($file_name){ return substr($file_name, strrpos($file_name, '.'));} 3)get_ext3($file_name){ return array_pop(explode('.', $file_name));} 4)get_ext4($file_name){ $p = pathinfo($file_name);return $p['extension'];} 5)get_ext5($file_name){ return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));} 19.如何修改SESSION的生存时间
这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上
答:其实 Session 还提供了一个函数 session_set_cookie_params();来设置 Session 的生存期的,该函数必须在 session_start()函数调用之前调用:
<?php
// 保存一天
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$_SESSION[“admin”] = true;
?>
20.请写一个函数,实现以下功能: 字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。Function test($str){ $arr1=explode('_',$str);//$arr2=array_walk($arr1,ucwords());$str = implode(' ',$arr1);return ucwords($str);} $aa='open_door';echo test($aa);?>
21.如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到? 答:$_SERVSR[‘REQUEST_URI’] $_SERVER[‘REMOTE_ADDR’] 22.求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数
答:(strtotime(‘2007-3-6’)-strtotime(‘2007-2-5’))/3600*24 23.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。答:select case when A>B then A else B end, case when B>C then B else C end From test 24.请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析? 1)选择最有效率的表名顺序(2)WHERE子句中的连接顺序
(3)SELECT子句中避免使用‘*’(4)用Where子句替换HAVING子句(5)通过内部函数提高SQL效率(6)避免在索引列上使用计算。(7)提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。
25.mysql_fetch_row()和 mysql_fetch_array()有什么分别?
mysql_fetch_row()把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵列的索引 0,第二栏在索引 1,如此类推。mysql_fetch_assoc()把数据库的一列储存在一个关联阵列中,阵列的索引就是栏位名称,例如我的数据库查询送回“first_name”、“last_name”、“email”三个栏位,阵列的索引便是“first_name”、“last_name”和“email”。mysql_fetch_array()可以同时送回 mysql_fetch_row()和 mysql_fetch_assoc()的值。26.下面的代码用来做什么?请解释。$date='08/26/2003';print ereg_replace(“([0-9]+)/([0-9]+)/([0-9]+)”,“2/1/3”,$date);
这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:
// 对应一个或更多 0-9,后面紧随一个斜号$regExpression = “([0-9]+)/”;// 应一个或更多 0-9,后面紧随另一个斜号$regExpression.= “([0-9]+)/”;// 再次对应一个或更多 0-9$regExpression.= “([0-9]+)”;至于 2/1/3 则是用来对应括号,第一个括号对的是月份,27.GD 函式库用来做什么? 答:这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上
28.请举例说明在你的开发过程中用什么方法来加快页面的加载速度
答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具啦 29.防止SQL注射漏洞一般用__addslashes___函数。30.PHP中传值和传引用、传地址的区别是什么?
答:传值是把实参的值赋值给行参 那么对行参的修改,不会影响实参的值 传地址 是传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和行参都指向同一个对象
31。如何通过javascript判断一个窗口是否已经被屏蔽 答:获取open()的返回值,如果是null,就是屏蔽了 33.对于大流量的网站,您采用什么样的方法来解决访问量问题 答:首先,确认服务器硬件是否足够支持当前的流量 其次,优化数据库访问。第三,禁止外部的盗链。第四,控制大文件的下载。
第五,使用不同主机分流主要流量 第六,使用流量分析统计软件
34.请举例说明在你的开发过程中用什么方法来加快页面的加载速度
A.生成静态HTML 生成xml
C.可不用数据库的尽量不用数据库把变量参数存于文本.D.用ZEND加速答:
第三篇:腾讯面试题目
测试笔试题
姓名: 电话: 笔试时间:
一、请简单描述贵公司/贵项目对bug严重程度的定义。
二、请列举您所知web测试类型,并注明哪些在实际工作中有测试过。
三、有以下三张表,请根据要求写出对应的数据库查询脚本(可使用您熟悉的数据库)表1:
Tablename:student Columns:student_id, name, age, sex 表2:
TableName:score Columns:id,student_id, course_id, score 表3:
TableName:course Columns:id,course_id, course_name, teacher_id 1)查询出student表中age>=20的前30名同学,并按age逆序排序。
2)查询出score>90以上的所有同学的name
3)查询出course_name为'高等数学'且score>90以上的所有同学的name、score
四、现有一个windows下的32位计算器,可做加减乘除功能。请尽可能全面的列举您能想到的测试类型,并写出功能测试用例。
五、会什么脚本语言?请用自己熟悉的脚本语言,写个小程序,比如在屏幕输出“hell word!”
六、写出10个linux的常用命令
第四篇:PHP程序员
**的个人简历
个人资料
姓名: **电子邮件: ******@qq.com
名族: 汉出生日期: 1991/1/3
学历: 本科居住地址: 深圳福田
性别: 男手机号码: 186***7739
4求职意向
到岗时间:即时
期望职位:php程序员
工作性质:全职
专业技能
1、熟练掌握PHP,HTML,DIV+CSS,Javascript,Ajax,jQuery等Web开发技术。
2、熟练使用PDO、MySQL方式操作MySQL数据库系统,熟悉MySQL事物及存储过程。
3、熟悉HTML,DIV+CSS前台页面技术和XML的使用。
4、熟悉网页静态化、Smarty缓存,thinkPHP缓存,掌握Web防SQL注入。
5、孰悉MVC架构开发思想模式,熟练使用Smarty模板,ThinkPHP框架,ZendFramework框架。
6、熟练掌握Zend Studio, Dreamweaver,Notepad++, EclipsePHP等常用Web开发工具;
7、了解Linux基本操作。
项目经验 项目一
项目名称:地球新闻网
软件环境:
开发工具:
项目描述: linux+apache+mysql+php Zend Studio 1.该项目是一个集各种新闻的网站。2.前台采用div+css,javascript等
技术进行页面布局,Javascript和Jquery技术制作下拉菜单、表单验证、复选框等效果。3.后台采用全面向对象开发,良好的运用了MVC三层架
构模式。
责任描述:独立开发
项目体会:通过开发这次项目,使我对制作一个网站有了一个全面的了解,也同时增
加了我的技术能力;通过该网站使我了解只有想不到,没有做不到。同时
也想到在这个发展迅速的社会,我们只有不断努力学习新的技术才能满足
客户的要求。
项目二
项目名称:聚焦购物商城
软件环境:
开发工具:
项目描述: windows+apache+mysql+php Zend Studio 8.0 该项目是一个大型的网站商城,采用thinkPHP主流框架开发。
前台包括:商品列表、搜索、商品详细页、注册、登录、购物车、会员
中心、评论等。后台有:商品管理、订单管理、会员管理、商家管理等。
满足用户购物流程的各种需求
责任描述: 负责完成了MySQL数据表、字段、索引的分析与创建,主页的图片轮换,商品详细
页,购物车模块,登录注册等功能,以及后台商品管理模块。
项目体会:通过此次项目的实战,让我对thinkPHP的掌握更加深刻,同时给我感觉的是使用模板的开发速度之快,更实现的HTML的代码与PHP代码的分
离,使得拥有更好的扩展以及维护。
工作经验
2012/8—2013/4业聚医疗器械(深圳)有限公司技术员 工作感想
之前的公司主要是生产和研发介入性医疗器械的一家公司,我的工作任务主要从事公司导管支架的研发,研发多种不同尺寸型号的球囊扩张导管。在我的工作中,使我学到了很多东西,让我变得更加细心,做事情更加注重细节,更有时间观念等等。
教育经历
2013/4—2013/8达内PHP培训php程序员主要学习了:linux系统常用操作命令,HTML/CSS,Javascript/Jquery/Ajax的前台技术,学习了用Linux系统和Windows系统开发项目,学习了Smarty模板,Zendframework,thinkPHP框架的使用,学习了DEDECMS二次开发。
在学习的过程中,自己独立完成了一个小项目《地球新闻网》,和同学合作完
成了一个商城网站《聚焦购物》,通过这两个项目的实战,为我以后的工作打
下了坚实的基础。
2008/9—2012/7湖北信息工程专修学院电子商务本科主要学习了:计算机应用基础,管理学,电子商务概论,网页设计与制作,电子商务法,商务沟通与谈判及商业职业道德专业课程,安全教育等课程。
通过这些课程的学习,使我对电子商务系统建设与管理打下了良好的基础,同时也使我拥有较强的沟通能力和职业道德水准。
个人评价 1.本人细心,乐观积极心态,吃苦耐劳,勇于挑战自我,热爱学习,喜欢总结;
2.具备良好的团队精神,能很好的与团队协作开发,有良好的沟通能力,喜欢交朋友;
3.性格开朗,阳光,喜欢篮球,游泳,羽毛球等体育运动。
第五篇:PHP程序员面试自我介绍
PHP程序员面试自我介绍
PHP程序员自我介绍的时候,一般都使用这几个要点来进行来说明的。
第一关于PHP程序员是否有良好的职业道德和工作态度,需要有工作认真、踏实,责任心以及很强的进取心。
第二关于PHP程序员是否有良好的客户交流沟通能力以及需求理解能力,从而能够拥有较强的协作精神和团队意识。
第三关于PHP程序员的思维能力,就是在事件中能够找出所引发的多种有可能的原因,以及确定行为的不同后果,从而发现复杂事物之间所存在的错综联系,最后逐步排除不太相关的信息,准确定位问题所在。
第四关于PHP程序员团队合作,程序员能够主动愿意与他人合作,以及与其他成员进行沟通交流,彼此分享信息、知识与资源。
第五关于PHP程序员主动性,程序员能够及时得发现机遇与问题,并且针对问题快速展开行动。
首先就是PHP程序员是否熟练掌握一种或以上开发语言,如知道怎么将PHP独特的语法混合了C、Java、Perl 以及PHP等一些自创新的语法。PHP程序员知道如何使用,可以让它比 CGI 或者 Perl 更快速的执行动态网页。其次就是否熟悉Oracle、Mysql等数据库。
下面就是还需要PHP程序员是否具有较强的文档撰写能力,因为使用PHP做出的动态页面与其他的编程语相比,PHP是可以将程序嵌入到HTML文档中去执行的,因此能够使执行得效率与完全生成HTML标记的相比,CGI要高许多。接下来就是PHP程序员是否具备独立分析和解决问题的能
力,这个能力的有无,将决定着PHP程序员自我介绍的成功与否,也是打动别人的支柱信息。
应届毕业生求职自我介绍
短短的求职自我介绍,其实是为了揭开更深入的面谈而设计的。
一、两分钟的自我介绍,犹如商品广告,在有限的时间内,针对客户的需要,将自己最美好的一面,毫无保留地表现出来,不但要令对方留下深刻的印像,还要即时引发起购买欲。
求职自我介绍最重要的是自我认识,首先必须认清自我,一定要弄清以下三个问题。你现在是干什么的?你将来要干什么?你过去是干什么的?
这三个问题不是按时间顺序从过去到现在再到将来,而是从现在到将来再到过去。其奥妙在于:如果你被雇用,雇主选中的是现在的你,他希望利用的是将来的你,而这将来又基于你的历史和现状。
所以,第一个问题,你是干什么的?现在是干什么的?回答这个问题,要点是:你是你自己,不是别的什么人。除非你把自己与别人区别开来,在共同点的基础上更强调不同点,否则你绝无可能在众多的应征求职者中夺魁。对于这第一个问题,自我反省越深,自我鉴定就越成功。
随后,着手回答第二个问题:你将来要干什么?如果你申请的是一份举足轻重的工作,雇主肯定很关注你对未来的自我设计。你的回答要具体,合理,并符合你现在的身份,要有一个更别致的风格。
然后,再着手回答最后一个问题:你过去是干什么的?你的过去当然都在履历上已有反映。你在面试中再度回答这个问题时,不可忽略之处是:不要抖落一个与你的将来毫不相干的过去。如果你中途彻文档仅供参考
底改行,更要在描述你的执着、职业目标的一贯性上下些功夫。要做到这一点,又要忠实于事实和本人,最简单的方法是:找到过去与将来的联系点,收集过去的资料,再按目标主次排列。
用这样的方法,以现在为出发点,以将来为目标,以过去为证实,最重要的是加深了你的自我分析和理解。其实,在面试的时候不一定有机会或者有必要照搬你的大作,但这三个问题的内在联系点一定会体现在自我表述的整体感觉中,使你的形象栩栩如生。
求职自我介绍中其次重要的是投其所好,清楚自己的强项后,便可以开始准备自我介绍的内容:包括工作模式、优点、技能,突出成就、专业知识、学术背景等。
好处众多,但只有短短一分钟,所以一切还是与该公司有关的好。如果是一间电脑软件公司,应说些电脑软件的话题;如是一间金融财务公司,便可跟他说钱的事,总之投其所好。
但有一点必须紧记:话题所到之处,必须突出自己对该公司可以作出的贡献,如增加营业额、减低成本、发掘新市场等。
在求职自我介绍中还得注意铺排次序。内容的次序亦极重要,是否能抓住听众的注意力,全在于事件的编排方式。所以排在头位的,应是你最想他记得的事情。而这些事情,一般都是你最得意之作。与此同时,可呈上一些有关的作品或纪录增加印像分。