问PHP面试机器问题

以下问题包括基础知识和一些编程技巧。如果你能做到大部分,水平当然是可以的,至少不是新手。

1.如何用php环境变量获取一个网页地址的内容?如何获取ip地址?[PHP]echo $ _ SERVER[' PHP _ SELF '];echo $ _ SERVER[' SERVER _ ADDR '];[/php]2。求两个日期的差,例如2007年2月5日和2007年3月6日的日期差[PHP]$ begin = strtime(' 2007年2月5日');$ end = strtotime(' 2007-3-6 ');echo($ end-$ begin)/(24 * 3600);[/php]3。请写一个函数实现以下功能:字符串“open_door”转换为“OpenDoor”,“make_by_id”转换为“MakeById”。函数change style(& amp;$str) {/*$str = str_replace ( "_ "," ",$ str);$ str = UC words($ str);$str = str_replace("," ",$ str);返回$ str*/$arrStr=explode('_ ',$ str);foreach($ arrStr as $ key = & gt;$ value){ $ arrStr[$ key]= strtoupper(substr($ value,0,1))。substr($value,1);}return内爆(',$ arrStr);} $ s = " open _ doorecho change style($ s);[/php]4。编写一个程序,将下面的数组$arr1转换为数组$ arr 2:[PHP]$ arr 1 = array(' 0 ' = > array(' FID ' = & gt;1,' tid ' = & gt1,' name ' = & gtName1 '),' 1 ' = & gt;数组(' fid ' = & gt1,' tid ' = & gt2,'名字' = & gtName2 '),' 2 ' = & gt数组(' fid ' = & gt1,' tid ' = & gt5,'名字' = & gtName3 '),' 3 ' = & gt数组(' fid ' = & gt1,' tid ' = & gt7,'名字' = & gtName4 '),' 4 ' = & gt数组(' fid ' = & gt3,' tid ' = & gt9,'名字' = & gtname 5’));$ arr 2 = array(' 0 ' = & gt;数组(' 0 ' = & gt数组(' tid ' = & gt1,' name ' = & gtName1 '),' 1 ' = & gt;数组(' tid ' = & gt2,'名字' = & gtName2 '),' 2 ' = & gt数组(' tid ' = & gt5,'名字' = & gtName3 '),' 3 ' = & gt数组(' tid ' = & gt7,'名字' = & gtName4 ')),' 1 ' = & gt;数组(' 0 ' = & gt数组(' tid ' = & gt9,'名字' = & gtname 5 '))));& lt?PHP $ arr 1 = array(' 0 ' = & gt;数组(' fid ' = & gt1,' tid ' = & gt1,' name ' = & gtName1 '),' 1 ' = & gt;数组(' fid ' = & gt1,' tid ' = & gt2,'名字' = & gtName2 '),' 2 ' = & gt数组(' fid ' = & gt1,' tid ' = & gt5,'名字' = & gtName3 '),' 3 ' = & gt数组(' fid ' = & gt1,' tid ' = & gt7,'名字' = & gtName4 '),' 4 ' = & gt数组(' fid ' = & gt3,' tid ' = & gt9,'名字' = & gtname 5’));函数changeArrayStyle($ arr){ foreach($ arr as $ key = & gt;$ value){ $ result[$ value[' FID ']][]= $ value;}返回array _ values($ result);} $ arr 2 = changeArrayStyle($ arr 1);回声" & ltpre >;";var _ dump($ arr 2);[/php]5。请简述数据库设计的范式和应用。一般第三范式足以优化表结构,可以避免庞大的SQL语句带来的应用的复杂性和系统的低效率。答案:第一范式:如果关系模式R的每个属性都是不可分解的,则属于第一范式。第二范式:若R属于第一范式,且所有非代码属性完全函数依赖于代码属性,则为第二范式。第三范式:若R属于第二范式,且无一非码属性是传递函数依赖于候选码,则属于第三范式。6.一个表中的一个Id有多条记录。找出这个id的所有记录,并显示* * * *中有多少条记录,分别用SQL语句、视图和存储过程实现。存储过程:[PHP]分隔符//create procedure proc _ count num(in columnid int,out rows no int)begin select count(*)into rows no from member where member _ id = columnid;endcall proc_countNum(1,@ no);选择@否;[/PHP]view:create view v _ Count num as select member _ id,Count(*)as Count num from member group by member _ id select Count num from v _ Count num where member _ id = 17表中有三列,用SQL语句实现:当A列大于B列时,选择A列,否则选择B列,当B列大于C列时,选择B列,否则选择C列..[PHP]select case when first _ name & gt;中间名thencase when first _ name & gt姓氏然后名字else姓氏endelsecase when middle _ name & gtlast _ name then middle _ name else last _ name end as name from member[/PHP]8请简述项目中优化sql语句执行效率的方法,从哪些方面,如何分析sql语句的性能。回答:sql优化没用,不如直接加索引。如果模板是智能模板,则为9。如何用section语句显示名为$data的数组?例如:[PHP]$ data = array([0]= & gt;array([id]= 8[name]= ' name 1 ')[1]= & gt;array([id]= 10[name]= ' name 2 ')[2]= & gt;数组([ID] = 15 [name] =' name3 ')...)[/PHP]在模板页面上写代码?如果使用foreach语句,如何显示?没有回答。10写一个函数,可以遍历一个文件夹下的所有文件和子文件夹。(目录操作)[PHP]

";} $ d->;close();[/php]11两个表:城市表和省份表。它们是城市和省份的关系表。城市:id城市省id1广州12深圳13惠州14长沙25武汉3.......................................................................................................................?(2)显示字段:城市id、城市名称和省份。比如:Id(城市id) Cityname(城市名)Privence(隐私)。。。。。。。。。。。。。。。。。。(2)如果你想统计每个省有多少个城市,请用group by找出。?显示字段:省份id、省份名称和包含的城市数量。答案:1.select A.id,A.Cityname,B.Province from city A,Province B where A . Province id = B . id 2 . select B . id,B.Province,count(*) as num from city A,Province id = B . id group by B . id 12 .请根据你的经验,简述一下软件工程中软件开发的步骤。使用过的工具有Rational Rose、PowerDesigner、Project、VSS或CVS、TestDirector等。他们的缺点是什么?公司用的是dbdesigner和cvs,测试管理工具是Mantis13。请简述操作系统中线程和进程的区别。列出你在LINUX下用过的软件?14.请用伪语言结合数据结构的冒泡排序法对以下一组数据进行排序10 2 36 14 10 25 23 85 99 45。函数bubble _ sort(& amp;$ arr){ $ number = count($ arr);for($ I = 0;$ i & lt$ number-1;$ i++){ for($ j = 0;$ j & lt$ number-1-$ I;$ j++){ if($ arr[$ j]& gt;$ arr[$ j+1]){ $ tmp = $ arr[$ j];$ arr[$ j]= $ arr[$ j+1];$ arr[$ j+1]= $ tmp;} } } } $ str = " 10 2 36 14 10 25 23 85 99 45 ";$arr=explode(",$ str);bubble _ sort($ arr);回声" & ltpre & gt";var _ dump($ arr);[/php]