/** - * php 面试题
- * edit bbs.it-home.org
- * at 2013-05-13
- */
- functiongbk_strrev($str){//----gbk中文字符串翻转-----
- $len=strlen($str);
- for($i=0;$i<$len;$i++){
- $char=$str{0};
- if(ord($char)>127){
- $i++;
- if($i<$len){
- $arr[]=substr($str,0,2);
- $str=substr($str,2);
- }
}else{ - $arr[]=$char;
- $str=substr($str,1);
- }
- }
- returnimplode(array_reverse($arr));
- }
$str=’中文.look!’; echo gbk_strrev($str); functionutf8_strrev($string){//-----utf8中文翻转-------- - $index=0;
$length=strlen($string); while($first_b=substr($string,$index,1)){ if(ord($first_b)>224){ $arr[]=substr($string,$index,3); $index+=3; }elseif(ord($first_b)>192){ $arr[]=substr($string,$index,2); $index+=2; }else{ $arr[]=substr($string,$index,1); $index+=1; } } returnimplode(array_reverse($arr)); } $str=’中文.look!’; echo utf8_strrev($str); functiongbk_substr($str,$length){//-----gbk截取中文字符串-------- $index=0; $result=’’; for($i=0;$i<$length;$i++){ $first_b=substr($str,$index,1); if(ord($first_b)>127){ $result.= substr($str,$index,2); $index+=2; }else{ $result.= substr($str,$index,1); $index+=1; } } return$result; } $str = "你好china"; echo gbk_substr($str, 5); functionutf8_substr($string,$length){//-----------utf8编码截取中文字符串------------- $index=0; $result=’’; for($i=0;$i<$length;$i++){ $first_b=substr($string,$index,1); if(ord($first_b)>224){ $result.= substr($string,$index,3); $index+=3; }elseif(ord($first_b>192)){ $result.= substr($string,$index,2); $index+=2; }else{ $result.= substr($string,$index,1); $index+=1; } } return$result; } $str = "你好china"; echo (utf8_substr($str, 3)); functionscan_dirs($path){//-----遍历目录------------ $path_source=opendir($path); while(($file=readdir($path_source))!==false){ //if(is_dir($path.’/’.$file)&&$file!= ’.’&&$file !=’..’){ if(is_dir($path. ’/’ . $file) && $file != ’.’ && $file != ’..’) { echo$path.’/’.$file,’ ’; scan_dirs($path.’/’.$file); }else{ echo$path.’/’.$file,’ ’; } } } $dir_name = ’E:/amp/apache/htdocs/mvc’; scan_dirs($dir_name); function get_ext1($file_name){//--------------获取文件后缀名---------- return strrchr($file_name, ’.’); } function get_ext2($file_name){ return substr($file_name,strrpos($file_name, ’.’)); } function get_ext3($file_name){ $arr=explode(’.’, $file_name); return array_pop($arr); } function get_ext4($file_name){ $p = pathinfo($file_name); return$p[’dirname’].’------’.$p[’basename’].’------’.$p[’extension’]; } function get_ext5($file_name){ return strrev(substr(strrev($file_name), 0,strpos(strrev($file_name), ’.’))); } echoget_ext5(’E:/amp/apache/htdocs/mvc/init.html’); functionmaopao($arr){//------冒泡排序法------------ $flag=false; $count= count($arr); for($i=0;$i<$count-1;$i++){ for($j=0;$j<$count-1-$i;$j++){ if($arr[$j]>$arr[$j+1]){ $tmp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$tmp; $flag=true; } } if($flag){ $flag=false; }else{ break; } } return$arr; } $arr=array(12,78,49,68,59,67,93,34,46,33); var_dump(maopao($arr)); functionxuanze($arr){//---------选择排序---------- for($i=0;$i $minIndex=$i; $minVal=$arr[$i]; for($j=$i+1;$j if($minVal>$arr[$j]){ $minVal=$arr[$j]; $minIndex=$j; } } $tmp=$arr[$i]; $arr[$i]=$arr[$minIndex]; $arr[$minIndex]=$tmp; }return$arr; } $arr=array(12,78,49,68,59,67,93,34,46,33); var_dump(xuanze($arr)); functioninsertSort($arr){//------------插入排序法--------- for($i=1;$i $insertVal=$arr[$i]; $insertIndex=$i-1; while($insertIndex>=0&&$insertVal<=$arr[$insertIndex]){ $arr[$insertIndex+1]=$arr[$insertIndex]; $insertIndex--; } $arr[$insertIndex+1]=$insertVal; } return$arr; } $arr=array(12,78,49,68,59,67,93,34,46,33); var_dump(insertSort($arr)); function quickSort($array){//-----快速排序法---------- if(count($array) <= 1) return $array; $key = $array[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i if ($array[$i] <= $key) $left_arr[] = $array[$i]; else $right_arr[] = $array[$i]; } $left_arr = quick_sort($left_arr); $right_arr = quick_sort($right_arr); return array_merge($left_arr, array($key), $right_arr); } $arr=array(12,78,49,68,59,67,93,34,46,33); var_dump(quickSort($arr)); function seqSch($arr, $num){//---顺序查找----- $flag=false; for($i=0;$i if($arr[$i]==$num){ echo ’找到了,下标为:’.$i; $flag=true; } } if(!$flag){ echo ’找不到’; } } $arr=array(12,78,49,68,59,67,93,34,46,33); seqSch($arr,34); functionerFen($arr,$num,$leftIndex,$rightIndex){//----二分查找---前提数组比为有序数组--- if($leftIndex>=$rightIndex){return’找不到’;} $midIndex=floor(($leftIndex+$rightIndex)/2); $midValue=$arr[$midIndex]; if($midValue>$num){ returnerFen($arr,$num,$leftIndex,$midIndex-1); }elseif($midValue<$num){ returnerFen($arr,$num,$midIndex+1,$rightIndex); }else{ return$midIndex; } } $arr=array(3,5,7,8,9,23,26,36); $leftIndex=0; $rightIndex=count($arr); var_dump(erFen($arr,36,$leftIndex,$rightIndex)); - ?>
|