PHP之几道面试题

时间:2022-02-17 02:35:30

1.二分查找算法

function two_find($arr,$low,$height,$k){
if($low<=$height){
$mid = intval(($low+$height)/2);
if($arr[$mid]==$k){
return true;
}elseif($k<$arr[$mid]){
return two_find($arr,$low,$mid-1,$k);
}else{
return two_find($arr,$mid+1,$height,$k);
}
}
return false;
}
$arr = array(1,3,4,5,6,9,10,15,20,25,27,30);
$key = 20;
if(two_find($arr,min(array_keys($arr)),max(array_keys($arr)),$key)){
echo "二分查找成功!";
}else{
echo "二分查找失败!";
}

2.一个字符串中含有字母和数字,请输出所有数字的和,注意,连续的数字算一个数字。(比如输入字符串为“23abc23dbf23” 最后输入的值应该为:69)

function str_sum($str){
$reg = '/[1-9]+[0-9]+/';
preg_match_all($reg,$str,$marth);
if(empty($marth)){
return false;
}
return array_sum($marth[0]);
}
echo str_sum("12adb012add012");

3.php从url取出文件扩展名,尽可能高效和简单。

function get_url($url){
$path = pathinfo($url);
$extenstion = explode("?",$path['extension']);
return $extenstion[0];
}
echo '从url取出文件扩展名,url为:http://m.cn/asdfasdf/2.asdf.adsfa.php?a=bbb&c=adfas,他的扩展名为:'.get_url('http://m.cn/asdfasdf/2.asdf.adsfa.php?a=bbb&c=adfas');

4.php中控制页面的显示状态为404,请写出PHp代码

echo "php中用header()函数是可以为返回页面添加404的头信息的,从而提示浏览器该网页找不到了。所以可以使用:header('HTTP/1.0 404 Not Found');或者:header('Status: 404 Not Found');后者是在FastCGI模式下使用的,在php代码中可以把两句直接同时写上。";