PHP笔试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基础题:1.表单中get与post提交方法的区别?答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.2.session与cookie的区别?答:session:储存用户会见的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放cookie:用来存储连续会见一个页面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。两者都可通过时间来设置时间长短3.数据库中的事务是什么?答:事务(transaction)是作为一个单元的一组有序的数据库操作。假如组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。假如所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。假如一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。简述题:1、用PHP打印出前一天的时间格式是2006-5-1022:21:21(2分)答:echodate(‘Y-m-dH:i:s’,strtotime(‘-1days’));2、echo(),print(),print_r()的区别(3分)答:echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)print()只能打印出简单类型变量的值(如int,string)print_r()可以打印出复杂类型变量的值(如数组,对象)echo输出一个或者多个字符串3、能够使HTML和PHP分离开使用的模板(1分)答:Smarty,Dwoo,TinyButStrong,TemplateLite,Savant,phemplate,XTemplate5、使用哪些工具进行版本控制?(1分)答:cvs,svn,vss;6、如何实现字符串翻转?(3分)答:echostrrev($a);7、优化MYSQL数据库的方法。(4分,井冈山酒店推荐多写多得)答:1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOTNULL,例如’省份,性别’,最好设置为ENUM2、使用连接(JOIN)来代替子查询:a.删除没有任何订单客户:DELETEFROMcustomerinfoWHEREcustomeridNOTin(SELECTcustomeridFROMorderinfo)b.提取所有没有订单客户:SELECTFROMcustomerinfoWHEREcustomeridNOTin(SELECTcustomeridFROMorderinfo)c.提高b的速度优化:SELECTFROMcustomerinfoLEFTJOINorderidcustomerinfo.customerid=orderinfo.customeridWHEREorderinfo.customeridISNULL3、使用联合(UNION)来代替手动创建的临时表a.创建临时表:SELECTnameFROM`nametest`UNIONSELECTusernameFROM`nametest2`4、事务处理:a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败mysql_query(“BEGIN”);mysql_query(“INSERTINTOcustomerinfo(name)8iVALUES(‘$name1′)”;mysql_query(“SELECT*FROM`orderinfo`wherecustomerid=”.$id”);mysql_query(“COMMIT”);5、锁定表,优化事务处理:a.我们用一个SELECT语句取出初始数据,通过一些计算,用UPDATE语句将新值更新到表中。包括有WRITE(write)关键字的LOCKTABLE语句可以保证在UNLOCKTABLES号令被执行之前,不会有其它的会见来对inventory进行插入、更新或者删除的操作mysql_query(“LOCKTABLEcustomerinfoREAD,orderinfoWRITE”);mysql_query(“SELECTcustomeridFROM`customerinfo`whereid=”.$id);mysql_query(“UPDATE`orderinfo`SETordertitle=’$title’wherecustomerid=”.$id);mysql_query(“UNLOCKTABLES”);6、使用外键,优化锁定表a.把customerinfo里的customerid映射到orderinfo里的customerid,任何一条没有合法的customerid的记录不会写到orderinfo里CREATETABLEcustomerinfo(customeridINTNOTNULL,PRIMARYKEY(customerid))TYPE=INNODB;CREATETABLEorderinfo(orderidINTNOTNULL,customeridINTNOTNULL,PRIMARYKEY(customerid,orderid),FOREIGNKEY(customerid)REFERENCEScustomerinfo(customerid)ONDELETECASCADE)TYPE=INNODB;注意:’ONDELETECASCADE’,该参数保证当customerinfo表中的一条记录删除的话同时也会删除order表中的该用户的所有记录,注意使用外键要定义事务安全类型为INNODB;7、建立索引:a.格式:(普通索引)-创建:CREATEINDEX索引名ONtablename(索引字段)修改:ALTERTABLEtablenameADDINDEX[索引名](索引字段)创表指定索引:CREATETABLEtablename([...],INDEX[索引名](索引字段))(唯一索引)-创建:CREATEUNIQUE索引名ONtablename(索引字段)修改:ALTERTABLEtablenameADDUNIQUE[索引名](索引字段)创表指定索引:CREATETABLEtablename([...],UNIQUE[索引名](索引字段))(主键)-它是唯一索引,一般在创建表是建立,格式为:CREATATABLEtablename([...],PRIMARYKEY[索引字段])8、斗法修仙传如何加点优化查询语句a.最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作例子1:SELECT*FROMorderWHEREYEAR(orderDate)2008;(慢)SELECT*FROMorderWHEREorderDate2008-01-01;(快)例子2:SELECT*FROMorderWHEREaddtime/724;(慢)SELECT*FROMorderWHEREaddtime24*7;(快)例子3:SELECT*FROMorderWHEREtitlelike%good%;SELECT*FROMorderWHEREtitle=”good”andnamegood;8、PHP的意思(送1分)答:PHP是一个基于服务端来创建动态网站的脚本语行,您可以用PHP和HTML生成网站主页9、MYSQL取适当前时间的函数是?,格式化日期的函数是(2分)答:now(),date()10、实现中文字串截取无乱码的方法。(3分)答:functionGBsubstr($string,$start,$length){if(strlen($string)$length){$str=null;$len=$start+$length;for($i=$start;$i$len;$i++){if(ord(substr($string,$i,1))0xa0){$str.=substr($string,$i,2);$i++;}else{$str.=substr($string,$i,1);}}return$str.’…’;}else{return$string;}}11、您是否用过版本控制软件?假如有您用的版本控制软件的名字是?(1分)12、您是否用过模板引擎?如果有您用的模板引擎的名字是?(1分)答:用过,smarty13、请简单阐述您最得意的开发之作(4分)答:信息分类14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)答:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量15、用PHP写出显示客户端IP与服务器IP的代码1分)答:打印客户端IP:echo$_SERVER['REMOTE_ADDR’];或者:getenv(‘REMOTE_ADDR’);打印服务器IP:echogethostbyname(“”)16、语句include和require的区别是什么?为防止多次包括同一文件,可用(?)语句取代它们?(2分)答:require-require是无条件包括也就是如果一个流程里加入require,无论条件成立与否都会先执行requireinclude-include有返回值,而require没有(可能因为如此require的速度比include快)注意:包括文件不存在或者语法错误的时候require是致命的,include不是17、如何修改SESSION的糊口生涯时间(1分).答:方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache方法2:$savePath=“./session_save_dir/”;$lifeTime=小时*秒;session_save_path($savePath);session_set_cookie_params($lifeTime);session_start();方法3:setcookie()andsession_set_cookie_params($lifeTime);18、有一个网页地址,比如PHP开发资源网主页:如何得到它的内容?($1分)答:方法1(对于PHP5及更高版本):$readcontents=fopen(“”,“rb”);$contents=stream_get_contents($readcontents);fclose($readcontents);echo$contents;方法2:echofile_get_contents(“”);19、在HTTP1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用header函数,其语句为(?);(2分)答:状态401代表未被授权,header(“Location:”);12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)答:heredoc的语法是用”加上自己定义成对的标签,在标签范围内的文字视为一个字符串例子:$str=mynameisJiangQihui!SHOW;13、谈谈asp,php,jsp的优缺点(1分)答:ASP全名ActiveServerPages,是一个WEB服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语行VBScript(Javascript)作为自己的开发语行。PHP是一种跨平台的服务器端的嵌入式脚本语行.它大量地借用C,Java和Perl语行的语法,并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持今朝绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(ht

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功