PHP经典面试题.pdf

上传人:蓝**** 文档编号:90993743 上传时间:2023-05-19 格式:PDF 页数:16 大小:636.77KB
返回 下载 相关 举报
PHP经典面试题.pdf_第1页
第1页 / 共16页
PHP经典面试题.pdf_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《PHP经典面试题.pdf》由会员分享,可在线阅读,更多相关《PHP经典面试题.pdf(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、最常见的最常见的 phpphp 面试题面试题目录目录面试题一面试题一.1面试题二面试题二.3面试题三面试题三.4面试题四面试题四.6面试题五面试题五.7面试题六面试题六.8面试题七面试题七.9本面试题分为七套,这些大部分都是本人被面试过的总结,发出来给大家参考,希望能助你在面试中顺利过关!面试题一面试题一1、表单提交 get 和 post 有何区别?答:get 的方式是把数据在地址栏中发送,get 传送的数据量较小,不能大于2KB。post 传送的数据量较大,一般被默认为不受限制。但理论上,IIS4 中最大量为 80KB,IIS5 中为 100KB。2、用 PHP 打印出前一天的时间格式是20

2、06-5-10 22:21:21echo date(Y-m-d H:i:s,time()-(3600*24);或 echo date(Y-m-d H:i:s,strtotime(-1 day);3、php 中 include 和 require 的区别?这两种结构除了在如何处理失败之外完全一样。include()产生一个警告而 require()则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include()就不是这样,脚本会继续运行。4、echo(),print(),print_r()的区别echo 可以接多个参数,print 只能接一个参数,它

3、们都是 PHP 的语言结构,print_r 是递规打印,用来打印数组或对象5、能够使 HTML 和 PHP 分离开使用的模板smarty,phplib,SmartTemplate6 你如何理解 MVC 模式?首先说一下框架,框架:就是别人把一些底层,常用操作.比如数据操作(增,删,改,查)写好.你来直接用.其它的功能要自己来做。MVC:设计模式,M 模型,V 显示,C 控制.现在许多框架都是基于 MVC 来做的把逻辑和显示分开.比如你要换页面,只需要改 V 里面的东西并不需要再去变动程序(详细的东西可以上网上!查一下)7、如何实现 PHP、JSP 交互?1PHP 提供了支持 JAVA的类库文件

4、,或者通过 HTTP 协议来交互数据8、使用哪些工具进行版本控制?VSS,CVS,SVN9、如何实现字符串翻转?不考虑中英文混合,不是最优算法,不用 php 库函数翻转字符串:functionstr_to_reverse($str)for($length=0;$str$length!=null;$length+);$strlength=$length-1;unset($length);for($start=0,$end=$strlength;$start$end;$start+,$end-)$temp=$str$start;$str$start=$str$end;$str$end=$temp;

5、unset($temp,$start,$end,$strlength);return$str;10、优化 MYSQL 数据库的方法。1)将 where 中用的比较频繁的字段建立索引,联合索引。2)保证单表数据不超过200W,适时分割表。3)避免使用长连接。4)修改 f 里面的各项参数,比如最大连接数,查询缓存等。根据你的服务器内存来最大化调节那些配置参数。5)针对需求,使用正确的表引擎,是myisam 或是 innodb。11.用 PHP 写出显示客户端 IP 与服务器 IP 的代码:echo$_SERVERREMOTE_ADDR/客户端 ipecho$_SERVERSERVER_ADDR/服

6、务器端 ip12、apache+mysql+php实现最大负载的方法1)问的太笼统,生成静态 html 页面,squid 反向代理,apache,mysql的负载均衡。2)可以采取数据缓存的方法,我们通常在统计数据的时候,需要在原始数据的基础上经过计算等一系列操作,才会得到最终的结果,如果每做一个查询都需要这样一系列操作,当数据量大时,势必会带来很多问题。可以建立一个结果表,写一个脚本,用crontab定时触发2脚本去原始表取数据,计算,写入到结果表,前端查询从结果表取数据,这也是比较常用的一种做法。3)采用分布式,多个 apache,多个 mysql,其实就是 dns 负载均衡,dns 根据

7、当前用户解析几个 ip 的 ping 值,将用户转移到某一台最快的服务器,或者平均分配。4)money 不是问题的话,可以考虑 F5 硬件负载均衡!5)可以使用Microsoft Windows ServerMicrosoft Windows Server 系统的负载均衡设置系统的负载均衡设置面试题二面试题二1、PHP/MySQL编程1)某内容管理系统中,表message 有如下字段id 文章 idtitle 文章标题content 文章内容category_id 文章分类 idhits 点击量创建上表,写出 MySQL 语句2)同样上述内容管理系统:表comment 记录用户回复内容,字段如

8、下comment_id 回复 idid 文章 id,关联 message 表中的 idcomment_content 回复内容现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面文章 id 文章标题 点击量 回复数量用一个 SQL 语句完成上述查询,如果文章没有回复则回复数量显示为03)上述内容管理系统,表category保存分类信息,字段如下category_id int(4)not null auto_increment;categroy_name varchar(40)not null;用户输入文章时,通过选择下拉菜单选定文章分类3写出如何实现这个下拉

9、菜单2、PHP 文件操作1)上述内容管理系统:用户提交内容后,系统生成静态HTML 页面;写出实现的基本思路ob_start();3、实现中文字串截取无乱码的方法。这个首先要考虑字符集的问题,UTF-8 下一个汉字占 3 字节,GBK 下一个汉字占 2 字节.可以自己写个函数来处理,别人也写了很多,当然也可以开启mbstring扩展库,使用里面的mb_substr()等函数来截取。当截取字符出现乱码时,是因为汉字被截断了,可以再字符串尾部连上一个chr(0)var$empty=;var$null=NULL;var$bool=FALSE;var$notSet;var$array=array();

10、面试题三面试题三1.$a=hello;$b=&$a;unset($b);$b=world;what is$a?hello,unset($b)只是释放了$b 自己和$a 的别名关系,并不会释放$a2.$a=1;$x=&$a;$b=$a+;what is$b?1,先执行$b=$a,$a+再进行,所以$b 还是 13.$x=empty($array);what is$x?trueorfalse4true,$array是空数组4.您是否用过版本控制软件?如果有您用的版本控制软件的名字是?CVS:winCVS,是一个 CVS 的客户端VSS,微软的产品,比较适合中小型项目,只支持单人 checkout5

11、.您是否用过模板引擎?如果有您用的模板引擎的名字是?SMARTY,php官方推荐的模板引擎,它是编译型模板,与phplib不太相同,功能强大,30多种标签,支持 cache6.请简单阐述您最得意的开发之作.hdwiki,开源项目,mediawiki 的使用性国人很不适应,代码修改起来也比较困难.hdwiki 比较适合目前的国人使用.7.对于大流量的网站,您采用什么样的方法来解决访问量问题?1 squid 反向代理8、谈谈事务处理可以控制并发操作所产生的数据同步提交、更新所带来的冲突问题.可以进行 comit,rollback操作,数据的安全性得到了提高。2)简单描述用户修改以发布内容的实现流程

12、和基本思路9、PHP 程序1)写出以下程序的输出结果$c?4:5;echo$a;52)写出以下程序的输出结果面试题四面试题四一.简答题1.请说明 php 中传值与传引用的区别。什么时候传值什么时候传引用?2.在 PHP 中 error_reporting这个函数有什么作用?3.请写一个函数验证电子邮件的格式是否正确4.简述如何得到当前执行脚本路径,包括所得到参数。说明:例如有一个脚本 ,传给他的参数有参数 1,参数 2,参数 3.传递参数的方法有可能是GET 有可能是 POST,那么现在请写出类似http:/ 1=值 1&参数 2=值 2.的结果5.如何修改 SESSION 的生存时间.6.有

13、一个网页地址 http:/ 函数)8.请举例说明在你的开发过程中用什么方法来加快页面的加载速度。二.数据库设计题:请设计一套图书馆借书管理系统的数据库表结构;可以记录基本的用户信息、图书信息、借还书信息;数据表的个数不超过6 个;请画表格描述表结构(需要说明每个字段的字段名、字段类型、字段含义描述);在数据库设计中应:1 保证每个用户的唯一性;2 保证每种图书的唯一性;每种图书对应不等本数的多本图书;保证每本图书的唯一性;3 借书信息表中,应同时考虑借书行为与还书行为,考虑借书期限;64 保证借书信息表与用户表、图书信息表之间的参照完整性;5 限制每个用户最大可借书的本数6 若有新用户注册或新

14、书入库,保证自动生成其唯一性标识7 为以下的一系列报表需求提供支持:(无特定说明,不需编写实现语句,而需在数据库设计中,保证这些报表可以用最多一条SQL 语句实现)a)日统计报表:当日借书本数、当日还书本数报表;b)实时报表:i.当前每种书的借出本数、可借本数;ii.当前系统中所有超期图书、用户的列表及其超期天数iii.当前系统中所有用户借书的本数,分用户列出(包括没有借书行为的用户);请编写实现此需求的 SQL 语句:数据库应用:请撰写一系列的 SQL 语句,分别描述完整的借书行为与还书行为;并保证这一系列的 SQL语句的执行完整性下题是测验能力之最重要测试,如不能完成我们将无法给出评判结果

15、!所以请写出详细的回答,并保证答案是可以执行的程序。在两日内将结果通过电子邮件寄到邮箱结合第二题中你的设计,用一种数据库实现,要求使用三层结构或者多层结构,要求采用面向对象的思想进行编程,有可能的话,设计一套模板机制来实现之。功能:列出当前借出图书的情况,按日期排列编号 用户姓名 书名 书的编号 借出日期1.张进 大染坊 12576587 2004-9-12.刘兴 西游记 32131098 2004-9-2面试题五面试题五1.在 PHP 中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的 URL 记录在预定义变量(2)中。2.执行程序段将输出(3)。3.在

16、 HTTP 1.0 中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header函数,其语句为(5)。4.数组函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。5.PEAR 中的数据库连接字符串格式是(8)。76.写出一个正则表达式,过虑网页上的所有JS/VBS 脚本(即把script 标记及其内容都去掉):(9)。7.以 Apache 模块的方式安装 PHP,在文件 http.conf中首先要用语句(10)动态装载 PHP 模块,然后再用语句(11)使得 Apache 把所有扩展名为 php 的文件都作为 PHP 脚

17、本处理。8.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。10.一个函数的参数不能是对变量的引用,除非在php.ini 中把(15)设为 on.11.SQL 中 LEFT JOIN 的含义是(16)。如果 tbl_user 记录了学生的姓名(name)和学号(ID),tbl_score 记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目

18、(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL 语句(17)。12.在 PHP 中,heredoc 是一种特殊的字符串,它的结束标志必须(18)。13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。14.简述论坛中无限分类的实现原理。15.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。16有一表 menu(mainmenu,submenu,url),请用递归法写出一树形菜单,将所有的 menu 列出来。面试题六面试题六1-给你三个数,写程序求出

19、其最大值。2-谈谈 asp,php,jsp 的优缺点3-谈谈对 mvc 的认识4-写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)5-如何通过 javascript判断一个窗口是否已经被屏蔽。6-写出 session 的运行机制7-有一数组$a=array(4,3,8,9,2);请将其重新排序,按从小到大的顺序列出。88-防止 SQL 注射漏洞一般用_函数。9-查询在线人数,并能处理异常掉线的SQL.WHERE _now()面试题七面试题七一、基础题 1.写出如下程序的输出结果2.写出如下程序的输出结果3.写出如下程序的输

20、出结果4.写出如下程序的输出结果5.写出如下程序的输出结果6.写出如下程序的输出结果7.使用五种以上方式获取一个文件的扩展名要求:dir/upload.image.jpg,找出.jpg 或者 jpg,必须使用 PHP 自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如get_ext1($file_name),get_ext2($file_name)二、算法题1.使用 PHP 描述冒泡排序和快速排序算法,对象可以是一个数组2.使用 PHP 描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组3.写一个二维数组排序算法函数,能够具有通用性,可以调用

21、php 内置函数【附答案】(以下答案不一定是最好的,只是一个简单的参考)一、基础题1.相等 相等 不相等2.true true true true true false true false3.aaaaaa4.5 0 15.5 26.1 27.使用五种以上方式获取一个文件的扩展名function get_ext1($file_name)return strrchr($file_name,.);function get_ext2($file_name)return substr($file_name,strrpos($file_name,.);function get_ext3($file_na

22、me)return array_pop(explode(.,$file_name);function get_ext4($file_name)$p=pathinfo($file_name);return$pextension;function get_ext5($file_name)return strrev(substr(strrev($file_name),0,strpos(strrev($file_name),.);11二、算法题1.使用 PHP 描述冒泡排序和快速排序算法,对象可以是一个数组/冒泡排序(数组排序)function bubble_sort($array)$count=co

23、unt($array);if($count=0)return false;for($i=0;$i$i;$j)if($array$j$array$j-1)$tmp=$array$j;$array$j=$array$j-1;$array$j-1=$tmp;return$array;/快速排序(数组排序)function quick_sort($array)if(count($array)=1)return$array;$key=$array0;$left_arr=array();$right_arr=array();for($i=1;$icount($array);$i+)if($array$i=

24、$key)$left_arr=$array$i;else$right_arr=$array$i;$left_arr=quick_sort($left_arr);$right_arr=quick_sort($right_arr);return array_merge($left_arr,array($key),$right_arr);122.使用 PHP 描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组/二分查找(数组里查找某个元素)function bin_sch($array,$low,$high,$k)if($low=$high)$mid=intv

25、al($low+$high)/2);if($array$mid=$k)return$mid;elseif($k$array$mid)return bin_sch($array,$low,$mid-1,$k);elsereturn bin_sch($array,$mid+1,$high,$k);return-1;/顺序查找(数组里查找某个元素)function seq_sch($array,$n,$k)$array$n=$k;for($i=0;$i$n;$i+)if($array$i=$k)break;if($i$val)$keysvalue$key=$val$keys;13if($order=

26、0)asort($keysvalue);else arsort($keysvalue);reset($keysvalue);foreach($keysvalue as$key=$vals)$keysort$key=$key;$new_array=array();foreach($keysort as$key=$val)$new_array$key=$arr$val;return$new_array;一份 php 面试题(附答案)2007-06-25 10:36考的很基础,但基础不牢,有一批不会做。像在HTTP 1.0 中,状态码401 的含义,error_reporting(2047)这些不知

27、道。但用 2047 似乎有点儿变态,太不易读。如果可以参考手册*1.在 PHP 中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的 URL 记录在预定义变量(2)中。2.执行程序段将输出(3)。3.在 HTTP 1.0 中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header函数,其语句为(5)。4.数组函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。5.PEAR 中的数据库连接字符串格式是(8)。6.写出一个正则表达式,过虑网页上的所有JS/VBS 脚本(即把script

28、标记及其内容都去掉):(9)。7.以 Apache 模块的方式安装 PHP,在文件 http.conf中首先要用语句(10)动态装载 PHP 模块,然后再用语句(11)使得 Apache 把所有扩展名为 php 的文件都作为 PHP 脚本处理。8.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。10.一个函数的参数不能是对变量的引用,除非在php.ini 中把(15)设为 on.11.S

29、QL 中 LEFT JOIN 的含义是(16)。如果 tbl_user 记录了学生的姓名(name)和学号(ID),tbl_score 记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),14要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL 语句(17)。12.在 PHP 中,heredoc 是一种特殊的字符串,它的结束标志必须(18)。13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。14.简述论坛中无限分类的实现原理。15.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用

30、户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。/答案(填空):1.echo$_SERVERPHP_SELF;echo$_SERVERHTTP_REFERER;2.03.(4)未授权(5)header(“HTTP/1.0 404 Not Found”);4.(6)对数组进行逆向排序并保持索引关系(7)All errors and warnings5.没弄明白6./.*?.*?/si7.(10)LoadModulephp5_module“D:/xampp/apache/bin/php5apache2.dll”(11)AddType application/x-htt

31、pd-php-source.phpsAddType application/x-httpd-php.php.php5.php4.php3.phtml8.(12)发 生 异 常 时include产 生 警 告require产 生 致 命 错 误(13)require_once()/include_once()9.serialize()/unserialize()10.allow_call_time_pass_reference11.(16)自然左外连接(17)select name,count(score)as sum_score from tbl_user left join tbl_scor

32、e ontbl_user.ID=tbl_score.IDgroup by tbl_user.ID12.结束标识符所在的行不能包含任何其它字符除”;”13./*遍历目录,结果存入数组。支持php4 及以上。php5 以后可用 scandir()函数代替 while 循环。*param string$dir*return array*/function my_scandir($dir)$files=array();if($handle=opendir($dir)while($file=readdir($handle)!=false)if($file!=“.”&$file!=“.”)15if(is_dir($dir.“/”.$file)$files$file=rec_scandir($dir.“/”.$file);else$files=$file;closedir($handle);return$files;16

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com