




免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
收集一些实用php面试题及答案给大家做为程序员,到IT企业面试的时候肯定会有笔试这关,那就要考考你的PHP知识了,所以本站收集一些实用的php面试题及答案给大家。 %QiT7l 基础题: -u/BqQ0n% 1.表单中 get与post提交方法的区别? F _t=- 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 6VTge 2.session与cookie的区别? x3(9-dL 答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 /xgc)* cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。 3-!yDA 两者都可通过时间来设置时间长短 iSp 3.数据库中的事务是什么? :5-:P(!D 答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成, 7Z!rcG 事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。 NJjiu=n 简述题: +|A#4q$4v 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分) tC+G ewZSU 答:echo date(Y-m-d H:i:s, strtotime(-1 days); FzakxT 2、echo(),print(),print_r()的区别(3分) DcZ=9U 答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) qhF, print() 只能打印出简单类型变量的值(如int,string) $zii+zkm print_r() 可以打印出复杂类型变量的值(如数组,对象) n:+ echo 输出一个或者多个字符串 KVU.*+b 3、能够使HTML和PHP分离开使用的模板(1分) 7Wn+ b.提取所有没有订单客户:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo) u?A* c.提高b的速度优化:SELECT FROM customerinfo LEFT JOIN orderid customerinfo.customerid=orderinfo.customerid F8L)J n WHERE orderinfo.customerid IS NULL 0(c: 3、使用联合(UNION)来代替手动创建的临时表 L#j6* a.创建临时表:SELECT name FROM nametest UNION SELECT username FROM nametest2 g*x7 4d 4、事务处理: Gk_VY a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败 _jo5I*Tv mysql_query(BEGIN); a mrvQ0 mysql_query(INSERT INTO customerinfo (name) VALUES ($name1); ; Eq| mysql_query(SELECT * FROM orderinfo where customerid=.$id); ie6l Z mysql_query(COMMIT); $*%z+ 5、锁定表,优化事务处理: MSY5QLKY& 6、使用外键,优化锁定表 l VG= 7J a.把customerinfo里的customerid映射到orderinfo里的customerid, j3u5hJ0 任何一条没有合法的customerid的记录不会写到orderinfo里 Oe7(J _ CREATE TABLE customerinfo LGnHw6_ ( ES jdoFF customerid INT NOT NULL, #3Ecv70 PRIMARY KEY(customerid) $ 2 )TYPE = INNODB; A:H$!La CREATE TABLE orderinfo g6STeI ( CD3Ufa/m orderid INT NOT NULL, ?b8o customerid INT NOT NULL, wt2O3kG PRIMARY KEY(customerid,orderid), ZU d*WE FOREIGN KEY (customerid) REFERENCES customerinfo x(F | =F&;Y+ 创建:CREATE INDEX ON tablename (索引字段) .gnSP 修改:ALTER TABLE tablename ADD INDEX 索引名 (索引字段) Ob+8i(gU 创表指定索引:CREATE TABLE tablename(.,INDEX索引名(索引字段) j|iZh5=8 (唯一索引)- 0) #sLv 创建:CREATE UNIQUE ON tablename (索引字段) !d5p:aI 修改:ALTER TABLE tablename ADD UNIQUE 索引名 (索引字段) f1Er6?&X 创表指定索引:CREATE TABLE tablename(.,UNIQUE索引名(索引字段) u ) bzMt&X:w 它是唯一索引,一般在创建表是建立,格式为: 1Lbzr L_ CREATA TABLE tablename (.,PRIMARY KEY索引字段) Lm 8、优化查询语句 k246ua,Ew a.最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作 BZI1c, 例子1: Yt4_PW SELECT * FROM order WHERE YEAR(orderDate)2008;(慢) N+U#e!ND5 SELECT * FROM order WHERE orderDate2008-01-01;(快) bv6Knvr 例子2: E, SELECT * FROM order WHERE addtime/724;(慢) px oxnI+ SELECT * FROM order WHERE addtime=good and namegood; 2ip Pz 8、PHP的意思(送1分) Ei;!d 答:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页 )Q$length) H=b6bD $str=null; 8v%fz!_= $len=$start+$length; AXNGx.s for($i=$start;$i0xa0) BWz: $str.=substr($string,$i,2); nwrp $i+; fjM9t else pII+np_H $str.=substr($string,$i,1); %K|BqY 8J:j5 cBXMllk return $str.; Bx PgOQ else th :r| 6 return $string; x 2Nv 5Id G$:QV =L k (| 11、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分) xLPtT|6e 12、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分) GC)qhF: 答:用过,smarty gR2hp;5Cj 13、请简单阐述您最得意的开发之作(4分) kZ 答:require-require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require kSQPZ; include-include有返回值,而require没有(可能因为如此require的速度比include快) w0q,ERo% 注意:包含文件不存在或者语法错误的时候require是致命的,include不是 J=v/uU! 17、如何修改SESSION的生存时间(1分). E FQA 答:方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache g|XY$n 方法2:$savePath = ./session_save_dir/; Am-H)&0a $lifeTime = 小时 * 秒; 86#HcQ+x& session_save_path($savePath); c We 1 session_set_cookie_params($lifeTime); DMJwd session_start(); : +W- h 方法3:setcookie() and session_set_cookie_params($lifeTime); 2N$# c linfeng2010-05-20 14:4418、有一个网页地址, 比如PHP开发资源网主页: /index.html,如何得到它的内容?($1分) RL10hx fg 答:方法1(对于PHP5及更高版本): yw0,bUtw $readcontents = fopen(/index.html, rb); Hk FY9:8 $contents = stream_get_contents($readcontents); f%9C fclose($readcontents); uzO echo $contents; X_K#*_n8(D 方法2: ?2w3 ,62 echo file_get_contents(/index.html); uv6 dV6 3%NjHX6+ 19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分) $vp?/XPH+x 答:状态401代表未被授权,header(Location:www.xxx.php); UljtCw 12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分) tI3gG 答:heredoc的语法是用加上自己定义成对的标签,在标签范围內的文字视为一个字符串 *424xUY 例子: J.lddA* $str = nEkA1 JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病 JkC9pvacg 脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Jav 2rh* a 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Js hZ|l($ pJava Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点 B&O5xHKl 程序。 / QjMwH 三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。 mSLZHL 但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的 G-!io*)g 第一次请求时发生。在 ASP 、PHP、JSP 环境下, HTML 代码主要负责描述信息的显示样式 ViHeE) ,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PH k4p8rkaF P、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 |ycwn HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三者都是面向 Web 服务器的技术 JjaK ,客户端浏览器不需要任何附加的软件支持。 3vq;o3 14、谈谈对mvc的认识(1分) f1VeSdu 答:由模型(model),视图(view),控制器(controller)完成的应用程序 2$Tu* q)9J 由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图; h!X0sG 答:SELECT * FROM members ORDER BY posts DESC limit 0,10; c%sd 8 - 16. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分) F /dAEo 答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略 pY:!r0* 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 Z H,(r8w 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。 ;7 WG OG 按引用传递则不需要复制值,对于性能提高很有好处。 e:Au 17. 在PHP中error_reporting这个函数有什么作用? (1分) V?,!ad 答:设置错误级别与错误信息回报 7&VF9W. 18. 请写一个函数验证电子邮件的格式是否正确 (2分) 5|W+.s 答:function checkEmail($email) (Tf 答:弹出对话框: alert(),prompt(),confirm() x%DR$;h 获得输入焦点 focus() ,GP;sd8 22、JS的转向函数是?怎么引入一个外部JS文件?(2分) YyN1d# 答:window.location.href, sO-ug0l q 23、foo()和foo()之间有什么区别?(1分) 2 A/u 答:foo()控制错误输出 |DTmv 24、如何声明一个名为”myclass”的没有方法和属性的类? (1分) zP$ySepX 答:class myclass bBY!_V ( 25、如何实例化一个名为”myclass”的对象?(1分) =ej S/y ) 答:new myclass() o-U/0FH 26、你如何访问和设置一个类的属性? (2分) *&TrN 答:$object = new myclass(); Sp1&S+_Y $newstr = $object-test; Q3!w,* $object-test = info; ;2 DdT7Y 27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分) g DC(X 答:mysql_fetch_row是从结果集取出1行数组,作为枚举 HlwM dCC mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得 8rCo& 28、GD库是做什么用的? (1分) Ztqr.=y 答:gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 Hinl6UF: 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。 4c$.(gR 29、指出一些在PHP输入一段HTML代码的办法。(1分) B6N$; 答:echo aaa; PROdv 30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分) i,z3 3 (a) fget() (b) file_open() (c) fopen() (d) open_file() c ?b0%29I 31、下面哪个选项没有将 john 添加到users 数组中? (1分) /to1+d (a) $users = john; .xd2+* A (b) array_add($users,john); :x0rd (c) array_push($users,john); xKtECY (d) $users |= john; a , c 7|RUOvU; 32、下面的程序会输入是否?(1分) !L5 nJAFd $num = 10; t:#!o,* function multiply() Y7w_Pzi $num = $num * 10; .!c1%& ?w9C=;fF multiply(); G)0sFP4 echo $num; Fh #slym ? f3v5olr!j 输出:10 qz%|_ 33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分) #D.* 表名User F)/A-NCM Name Tel Content Date bnQi|_T 张三大专毕业 2006-10-11 W5LwplO, 张三本科毕业 2006-10-15 /m 张四中专毕业 2006-10-15 |R ?Gk 请根据上面的题目完成代码: :%D,MGi $mysql_db=mysql_connect(local,root,pass); qjDY mysql_select_db(DB,$mysql_db); wuA sF( $result = mysql_query(SELECT * FROM user WHERE name=张三); N OW*+ while($rs = mysql_fetch_array($result) s+B% m= echo $rstel.$rscontent.$rsdate; pe*Nl6RwF fD1TQ 34、如何使用下面的类,并解释下面什么意思?(3) yIZq!1jbV4G) $object = new test(); eOQoi# $encrypt = $object-Get_test($testnum); OmyxX( echo $encrypt; io*m6o O 类test里面包含Get_test方法,实例化类调用方法多字符串加密 HHa6LP9X 35、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分) 4sMJ 表名User O0l%mARb Name Tel Content Date &:z|2gT( 张三大专毕业 2006-10-11 H/.w (b) 请用sql语句把张三的时间更新成为当前系统时间 E?C62 $nowDate = date(Ymd); +Qv)HjNL mysql_query(UPDATE user SET date=.$nowDate. WHERE name=张山); 5tKo| (c) 请写出删除名为张四的全部记录 U;l: 7D mysql_query(DELETE FROM user WHERE name=张四); Rf Tl w m 36、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分) G& .RKI 答:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串 I_D%W!a$ char的场地固定为创建表设置的长度,varchar为可变长度的字符 .TD 38、写出以下程序的输出结果 (1分) 1G%d(h+B $b=201; LT4 _ $c=40; (TCN0 $a=$b$c?4:5; =m#NKO6 echo $a; z!(uNQ ? aP5-rF 答:4 /_IgGzf G 39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分) t jtfC6 P 答:isset($str),empty($str); !H/Imk_ 40、取得查询结果集总数的函数是?(1分) %j4XFEkB 答:mysql_num_rows($result); :mBk)k 41、$arr = array(james, tom, symfony); 请打印出第一个元素的值 (1分) zHVI2 w 答:echo $array0; l3U0Ff5y) 42、请将41题的数组的值用,号分隔并合并成字串输出(1分) ?M9 -olY 答:for($i=0;$i4 I 44、PHP可以和sql server/oracle等数据库连接吗?(1分) 2U &:fOOO 答:当然可以 BJE!(evuh 45、请写出PHP5权限控制修饰符(3分) XJ3(89( 答:public(公共),private(私用),protected(继承) Bh6:ymc 46、请写出php5的构造函数和析构函数(2分) qSL VXT 答:_construct , _destruct fruoW%fw 47、完成以下: :hjxDWR1 (一)创建新闻发布系统,表名为message有如下字段 (3分) qC%UA id 文章id Av d) title 文章标题 NUh ! * content 文章内容 5+Q#i category_id 文章分类id H|57$S hits 点击量 t%U 8I 答:CREATE TABLE message( EMZG$;ZE id int(10) NOT NULL auto_increment, +jX-8M, title varchar(200) default NULL, (;gb3v content text, TW9D6, category_id int(10) NOT NULL, oLkuOKT: hits int(20), cI PRIMARY KEY(id); qh9GCA% )ENGINE=InnoDB DEFAULT CHARSET=utf8; . JE$Ilo (二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下 (4分) h: b0T_h comment_id 回复id 6fORhB0( id 文章id,关联message表中的id zv5XZ3*;L comment_content 回复内容 Ru=u.Iy 现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面 A|;*L 文章id 文章标题 点击量 回复数量 !1)KO0qH 用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0 3-e8Ruu& 答:SELECT message.id id,message.title title,IF(message.hits IS NULL,0,message.hits) hits, 9 PMCem IF(comment.id is NULL,0,count(*) number FROM message LEFT JOIN (h94g comment ON message.id=comment.id GROUP BY message.id; uXyx6:L8 (三)上述内容管理系统,表category保存分类信息,字段如下 (3分) _w category_id int(4) not null auto_increment; #i-W+UPz f 答:function categoryList() 2xgb)l YL_OX%h $result=mysql_query(select category_id,categroy_name from category) u,YhyrIYW or die(Invalid query: . mysql_error(); L!EdLwp print(n); LYX F&ao) while($rowArray=mysql_fetch_array($result) _ip( :oa0PN print(.$rowArraycategroy_name.n); :k ?YY5 RhT-3H print(); 3qAo-ll SyM0F2V linfeng2010-05-20 14:45编程题: i ?!W;c 1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名 dj8g: kB 例如: /abc/de/fg.php?id=1 需要取出 php 或 .php YC1fYB? 答案1: y2bQ 0hD) function getExt($url) ;6+ 6 $arr = parse_url($url); hQ B =cP k(57P2; $file = basename($arrpath); !CRY$ $ext = explode(.,$file); v%$?+ return $ext1; (Fb?bPwiZs Xo3UlxL 答案2: hVb?DFp function getExt($url) G2vPCz0 $url = basename($url); $p2n?Fo, $pos1 = strpos($url,.); nkI G $pos2 = strpos($url,?); CPeOcJ if(strstr($url,?) m%M/CY2s(i return substr($url,$pos1 + 1,$pos2 - $pos1 - 1); L knsH else m#_6m return substr($url,$pos1); OYmHAy(s MH43Rw4 nx$V# zr!Z,Rh) 2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句 W_3+J,j 请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5 +ZVd8 请注意: sI8,B;cv 1. 需要处理完整的 html 页面,即不光此 meta 语句 |y,dw ?! 2. 忽略大小写 33&m 3. 和 在此处是可以互换的 |/S 86QV 4. Content-Type 两侧的引号是可以忽略的,但 text/html; charset=gbk 两侧的不行 3B&!31 5. 注意处理多余空格 es?3Pq,_y 3. 写一个函数,算出两个文件的相对路径 480b|x 如 $a = /a/b/c/d/e.php; iRQEXU $b = /a/b/12/34/c.php; Oz)+B 计算出 $b 相对于 $a 的相对路径应该是 ././c/d将()添上 N_:KMTM+ 答:function getRelativePath($a, $b) |& 5oV, $returnPath = array(dirname($b); d3IS;z $arrA = explode(/, $a); 92bpGB& $arrB = explode(/, $returnPath0); wl+4l for ($n = 1, $len = count($arrB); $n $It3 break; 0) Wau72U!C? $returnPath = array_merge($returnPath, array_fill(1, $len - $n, .); WF MEDhy 60:t#Pu (y%HLS $returnPath = array_merge($returnPath, array_slice($arrA, $
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)挂车托运车辆协议书
- 福建省福州三校联盟2026届高二化学第一学期期末达标检测试题含答案
- 2026届云南省大理州新世纪中学高二化学第一学期期中联考模拟试题含解析
- 2025年学校校园安全生产及消防安全工作计划
- 酒店装修工程质量通病及整改措施
- 2025年国际贸易实务中级模拟考试试题集
- 三进两联一交友志愿者组织计划
- (2025年标准)股权折价协议书
- 江苏省苏州市四校联考2024-2025学年高二上学期10月调研测试物理试卷(解析版)
- (2025年标准)股权投资运营协议书
- 学前儿童融合教育
- 2025年新疆中考道德与法治试卷真题(含标准答案)
- 科技公司薪资管理制度
- 糖尿病患者围手术期麻醉管理
- 胃肠疾病预防与健康管理
- 2025年云南省中考英语试卷真题(含标准答案及解析)
- 2025年全国新高考英语II卷试题解析及复习备考策略(课件)
- 全球化背景下文化自信的传承与创新
- 合规监督概念课件
- 电力变压器智能数字孪生体的构建与展望
- 无锡金栢精密模具有限公司搬迁项目环评资料环境影响
评论
0/150
提交评论