PHP程序员面试题目.doc
《PHP程序员面试题目.doc》由会员分享,可在线阅读,更多相关《PHP程序员面试题目.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PHP程序员面试题目PHP程序员面试题目流行的php面试题及答案1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。答:echo$_SERVERPHP_SELF;echo$_SERVERHTTP_REFERER;2.执行程序段将输出(3)。答:03.在HTTP1.0中,状态码401的含义是(4);如果返回“找不到文件”的提示,则可用header函数,其语句为(5)。答:(4)未授权(5)header(HTTP/1.0404NotFound);4.数组函数arsort的作用是(6);语句error_reporting
2、(2047)的作用是(7)。答:(6)对数组进行逆向排序并保持索引关系(7)Allerrorsandwarnings5.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把标记及其内容都去掉):(9)。答:/.*?.*?/si6.以Apache模块的方-式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。答:(10)LoadModulephp5_moduleD:/xampp/apache/bin/php5apache2.dll(11)AddTypeapplication/x-h
3、ttpd-php-source.phpsAddTypeapplication/x-httpd-php.php.php5.php4.php3.phtml7.语句include和require都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替-它们。答:(12)发生异常时include产生警告require产生致命错误(13)require_once()/include_once()8.类的属性可以序列化后保存到session中,从而以后可以恢复整个类,这要用到的函数是(14)。答:serialize()/unserialize()9.一个
4、函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on.答:allow_call_time_pass_reference10.SQL中LEFTJOIN的含义是(16)。如果tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。答:(16)自然左外连接(17)selectname,count(score)assum_scorefromtbl_userleftjoint
5、bl_scoreontbl_user.ID=tbl_score.IDgroupbytbl_user.ID11.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。答:结束标识符所在的行不能包含任何其它字符除;12.用PHP打印出前一天的时间格式是202*-5-1022:21:21答:echodate(Y-m-dH:i:s,strtotime(-1day);13.echo(),print(),print_r()的区别答:echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象14.如何实现字
6、符串翻转?答:.用strrev函数呗,不准用PHP内置的就自己写:strrev($str)$len=strlen($str);$newstr=;for($i=$len;$i=0;$i-)$newstr.=$str$i;return$newstr;15.实现中文字串截取无乱码的方法。答:mb_substr()16.使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来表名UserNameTelContentDate张三13333663366大专毕业202*-10-11张三13612312331本科毕业202*-10-15张四021-55665566中专毕业202*-10-15答:SEL
7、ECTName,Tel,Content,DateFROMUserWHEREName=张三17.如何使用下面的类,并解释下面什么意思?classtestGet_test($num)$num=md5(md5($num).En);return$num;答:用法:$get_test=newtest();$result=$get_test-Get_test(2);将$num变量进行两次md5后返回,第2次的md5中的参数,在第一次md5($num)后多加了En18.使用五种以上方式获取一个文件的扩展名要求:dir/upload.image.jpg,找出.jpg或者jpg,答:使用五种以上方式获取一个文件
8、的扩展名1)get_ext1($file_name)returnstrrchr($file_name,.);2)get_ext2($file_name)returnsubstr($file_name,strrpos($file_name,.);3)get_ext3($file_name)returnarray_pop(explode(.,$file_name);4)get_ext4($file_name)$p=pathinfo($file_name);return$pextension;5)get_ext5($file_name)returnstrrev(substr(strrev($file
9、_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($lifeT
10、ime);session_start();$_SESSIONadmin=true;?20.请写一个函数,实现以下功能:字符串“open_door”转换成“OpenDoor”、”make_by_id”转换成”MakeById”。30.请举例说明在你的开发过程中用什么方法来加快页面的加载速度A生成静态HTML生成xmlC可不用数据库的尽量不用数据库把变量参数存于文本.D用ZEND加速答:$arr1=explode(_,$str);/$arr2=array_walk($arr1,ucwords();$str=implode(,$arr1);returnucwords($str);$aa=open_d
11、oor;echotest($aa);?21.如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?答:$_SERVSRREQUEST_URI$_SERVERREMOTE_ADDR22.求两个日期的差数,例如202*-2-5202*-3-6的日期差数答:(strtotime(202*-3-6)-strtotime(202*-2-5)/3600*2423.表中有ABC三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。答:selectcasewhenABthenAelseBend,casewhenBCthenBelseCendFromt
12、est24.请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?1)选择最有效率的表名顺序(2)WHERE子句中的连接顺序(3)SELECT子句中避免使用*(4)用Where子句替换HAVING子句(5)通过内部函数提高SQL效率(6)避免在索引列上使用计算。(7)提高GROUPBY语句的效率,可以通过将不需要的记录在GROUPBY之前过滤掉。25.mysql_fetch_row()和mysql_fetch_array()有什么分别?mysql_fetch_row()把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵列的索引0,第二栏在索引1,如此类推。mysql
13、_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/202*;printereg_replace(0-9+)/(0-9+)/(0-9+),2/1/3,$date);这是把一个日期从MM/DD/YYY
14、Y的格式转为DD/MM/YYYY格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:/对应一个或更多0-9,后面紧随一个斜号$regExpression=(0-9+)/;/应一个或更多0-9,后面紧随另一个斜号$regExpression.=(0-9+)/;/再次对应一个或更多0-9$regExpression.=(0-9+);至于2/1/3则是用来对应括号,第一个括号对的是月份,27.GD函式库用来做什么?答:这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD以外的另一个选择是ImageMagic
15、k,但这个函式库并不内建于PHP之中,必须由系统管理员安装在伺服器上28.请举例说明在你的开发过程中用什么方法来加快页面的加载速度答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具啦29.防止SQL注射漏洞一般用_addslashes_函数。30.PHP中传值和传引用、传地址的区别是什么?答:传值是把实参的值赋值给行参那么对行参的修改,不会影响实参的值传地址是传值的一种特殊方式,只是他传递的是地址,不是普通的如int那么传地址以后,实参和行参都指向同一个对象31。如何通过javascript判断一个窗口是否已经被屏蔽答:获
16、取open()的返回值,如果是null,就是屏蔽了33.对于大流量的网站,您采用什么样的方法来解决访问量问题答:首先,确认服务器硬件是否足够支持当前的流量其次,优化数据库访问。第三,禁止外部的盗链。第四,控制大文件的下载。第五,使用不同主机分流主要流量第六,使用流量分析统计软件扩展阅读:PHP程序员面试题PHP程序员面试题1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的的前一页面URL记录在预定义变量(2)中2.执行程序段将输出_。3.在HTTP1.0中,状态码401的含义是_;如果返回“找不到文件”的提示,则可用header函数,其语句为_
17、。答:401表示未授权;header(HTTP/1.0404NotFound);见参考手册函数参考HTTP函数header4.数组函数arsort的作用是_;语句error_reporting(2047)的作用是_。答:arsort:对数组进行逆向排序并保持索引关系error_reporting(2047)的作用是:reportAllerrorsandwarnings5.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):6.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句_动态装载PHP模块,然后再用语句_使得Apache把所
18、有扩展名为php的文件都作为PHP脚本处理。答:LoadModulephp5_modulec:/php/php5apache2.dll;AddTypeapplication/x-httpd-php.php见参考手册目录II.安装与配置6.Windows系统下的安装MicrosoftWindows下的Apache2.0.x7.语句include和require都能把另外一个文件包含到当前文件中,它们的区别是_;为了避免多次包含同一文件,可以用语句_来代替它们。答:在如何处理失败时,include()产生一个警告而require()则导致一个致命错误;require_once()/include_
19、once()8.一个函数的参数不能是对变量的引用,除非在php.ini中把_设为on.答:allow_call_time_pass_referenceboolean:是否启用在函数调用时强制参数被按照引用传递,见参考手册附录G9.SQL中LEFTJOIN的含义是_,如果tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句_.答:自然左外连接createdatabasephpintervie
20、w;usephpinterviewcreatetabletbl_user(IDintnotnull,namevarchar(50)notnull,primarykey(ID);createtabletbl_score(IDintnotnull,scoredec(6,2)notnull,subjectvarchar(20)notnull);insertintotbl_user(ID,name)values(1,beimu);insertintotbl_user(ID,name)values(2,aihui);insertintotbl_score(ID,score,subject)values(
21、1,90,语文);insertintotbl_score(ID,score,subject)values(1,80,数学);insertintotbl_score(ID,score,subject)values(2,86,数学);insertintotbl_score(ID,score,subject)values(2,96,语文);selectA.id,sum(B.score)assumscorefromtbl_userAleftjointbl_scoreBonA.ID=B.IDgroupbyA.id10.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须_答:结束标识符所在的行
22、不能包含任何其它字符除;11.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。$files=$dir./.$file;closedir($handle);return$files;print_r(my_scandir(D:ProgramFilesInternetExplorerMUI);?1、用PHP打印出前一天的时间,格式是202*-5-1022:21:21(2分)echodate(Y-m-dH:i:s,date(U)-86400);或者echodate(Y-m-dH:i:s,strtotime(-1day);2、echo(),print(),print_r()的区别(3分)echo是
23、PHP语句,语句是没有返回值的,而print和print_r是函数,函数可以有返回值。print只能打印出简单类型变量的值(如int,string)print_r可以打印出复杂类型变量的值(如数组,对象)echo-输出一个或者多个字符串3、能够使HTML和PHP分离开使用的模板(1分)smarty模板4、使用哪些工具进行版本控制?(1分)CVS和SVNsubversion5、如何实现字符串翻转?(3分)使用php函数strrev(abc)6、优化MYSQL数据库的方法。(4分,多写多得)(1).选取最适用的字段属性,应该尽量把字段设置为NOTNULL,这样在将来执行查询的时候,数据库不用去比较
24、NULL值。(2).使用连接(JOIN)来代替子查询(Sub-Queries)(3).使用联合(UNION)来代替手动创建的临时表(4).尽量少使用LIKE关键字和通配符(5).使用事务和外键7、PHP的意思(送1分)PHP是一种服务器端的,嵌入HTML的脚本语言。英文“超级文本预处理语言”(HypertextPreprocessor)的缩写8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)now()date_format(date,format)9、实现中文字串截取无乱码的方法。(3分)当用substr截取中文字符的时候会出现乱码,当然你如果装了mb扩展,用mb_substr截
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 程序员 面试 题目
限制150内