最新消息:Excel无乱码转CSV,由于工作原因很少更新博客和回复大家的评论,非常抱歉。

php笔试题及答案(一)

1.求两个日期的差数,例如2009-3-1 ~ 2009-4-4 的日期差数.

答:(strtotime(‘2009-4-4’)-strtotime(‘2009-3-1’))/3600*24

2.请写一个函数,实现以下功能: 字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。
答:Function changestr($str)

{
$arr1=explode(‘_’,$str);
$arr2=array_walk($arr1,wcwords);
Return inmplode(‘’,$arr2);

}

3.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉)

答:/<script[^>].*?>.*?<\/script>/si

4.语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?
答:require()和include()基本上一样, 除了怎样处理失败之外,include()产生一个警告而require()则导致一个致命错误,也就是说如果你想在丢失文件时停止处理页面用require(),而当用include()时,脚本会继续运行。require()无论如何都会包含文件而include()可以有选择地包含.
可以用include_once()和require_once()分别代替include()和require().
5.要求写一段程序,实现以下数组$arr1转换成数组$arr2:
$arr1 = array (
‘0’ => array (‘fid’ => 1, ‘tid’ => 1, ‘name’ =>’Name1′ ),
‘1’ => array (‘fid’ => 1, ‘tid’ => 2 , ‘name’ =>’Name2′ ),
‘2’ => array (‘fid’ => 1, ‘tid’ => 5 , ‘name’ =>’Name3′ ),
‘3’ => array (‘fid’ => 1, ‘tid’ => 7 , ‘name’ =>’Name4′ ),
‘4’ => array (‘fid’ => 3, ‘tid’ => 9, ‘name’ =>’Name5′ )
);
$arr2 = array (
‘0’ => array (
‘0’ => array ( ‘tid’ => 1, ‘name’ => ‘Name1’),
‘1’ => array ( ‘tid’ => 2, ‘name’ => ‘Name2’),
‘2’ => array ( ‘tid’ => 5, ‘name’ => ‘Name3’),
‘3’ => array ( ‘tid’ => 7, ‘name’ => ‘Name4’)
),
‘1’ => array (
‘0’ => array ( ‘tid’ => 9, ‘name’ => ‘Name5’ )
)
);

答:
$arr1 = array (
‘0’ => array (‘fid’ => 1, ‘tid’ => 1, ‘name’ =>’Name1′ ),
‘1’ => array (‘fid’ => 1, ‘tid’ => 2 , ‘name’ =>’Name2′ ),
‘2’ => array (‘fid’ => 1, ‘tid’ => 5 , ‘name’ =>’Name3′ ),
‘3’ => array (‘fid’ => 1, ‘tid’ => 7 , ‘name’ =>’Name4′ ),
‘4’ => array (‘fid’ => 3, ‘tid’ => 9, ‘name’ =>’Name5′ )
);
$arr2=”;
$arr3=”;
Foreach($arr1 as $item){
$arr3[$item[‘fid’]][]=array(‘tid’=>$item[‘tid’],’name’=>$item[‘name’]);

}
foreach($arr3 as $value){
$arr2[]=$value;
}

6.用javascript写一个函数,其功能是可以删除数组中重复的元素.

答:function myArray_Unique(Array)
{

 var haha=Array;
for(var i=0;i<Array.length;i++)
{
for(var j=0;j<Array.length;j++)
{
temp=Array[i];
if((i+j+1)<Array.length&&temp==Array[i+j+1]) //如果当前元素与后一个元素相等
haha.splice(i+j+1,1);       //然后就移除下一个元素
}
}
return haha;
}

7.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

答:select case when A>B then A else B end,
case when B>C then B else C end
From table

8.请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?

答:(1)选择最有效率的表名顺序
(2)where子句中的连接顺序
(3)select子句中避免使用‘*’
(4)用Where子句替换having子句
(5)通过内部函数提高sql效率
(6)避免在索引列上使用计算
(7)提高group by语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。

9.如果模板是用smarty模板。怎样用section语句来显示一个名为$data的数组。比如:

$data = array(
[0] => array( [id]=8 [name]=’name1′)
[1] => array( [id]=10 [name]=’name2′)
[2] => array( [id]=15 [name]=’name3′)
……
)
写出在模板页的代码? 若用foreach语句又要怎样显示呢?

答:1、
<{section name=test loop=$data start=0 step=1}>
id:<{$data[test].id}><br />
name:<{$data[test].name}><br /><br />
<{sectionelse}>
数组为空
<{/section}>
2、
<{foreach from=$data item=test}>
id:<{$test.id}><br />
name:<{$test.name}><br /><br />
<{foreachelse}>
数组为空
<{/foreach}>

10.两张表 city表和province表。分别为城市与省份的关系表。
city:
id City Provinceid
1 广州 1
2 深圳 1
3 惠州 1
4 长沙 2
5 武汉 3
………. 广州
province:
id Province
1 广东
2 湖南
3 湖北
……….
(1) 写一条sql语句关系两个表,实现:显示城市的基本信息。?
(2) 显示字段:城市id ,城市名, 所属省份 。
如:
Id(城市id) Cityname(城市名) Privence(所属省份)
。。。。。。。。。
。。。。。。。。。

答:select c.id Id,c.City Cityname,d.Province from city c,province p where c.Provinceid=p.id

(2)如果要统计每个省份有多少个城市,请用group by 查询出来。?
显示字段:省份id ,省份名,包含多少个城市。
答:select p.id,p.Province,count(c.id) num from city c,province p where c.Provinceid=p.id group by p.id;

11.请使用伪语言结合数据结构冒泡排序法对以下一组数据进行排序 10 2 36 14 10 25 23 85 99 45。

答:
$str=’10 2 36 14 10 25 23 85 99 45′;
$arr=explode(‘ ‘,$str);
$count=count($arr);
for($i=0;$i<$count;$i++){
for($j=$i+1;$j<$count;$j++){
if($arr[$j]<$arr[$i]){
$temp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$temp;
}
}
}
$str1=implode(‘ ‘,$arr);
echo$str1;

转载请注明:嗨酷哥,有你更酷! » php笔试题及答案(一)

与本文相关文章

发表我的评论

取消评论
表情 插代码

Hi,您需要填写昵称和邮箱!

  • 必填项
  • 必填项