-
-
/**
- * php 面試題
- * edit bbs.it-home.org
- * at 2013-05-13
- */
- functiongbk_strrev($str){//-- -- gbk中文字串剪貼畫-----
- $len=strlen($str);
- for($i=0;$i $char=$str{0};
- if(ord($char)>127){
- $i++;
- if($i $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; p>
-
$index+=3; p>
}elseif(ord($first_b)>192){
-
$arr[ ]=substr($string,$index,2);
$index+=2;
} 否則{
$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
$first_b=substr($str,$index,1);
- if(ord($first_b)>127){
$result.= substr($str,$index,2);
$index+ =2;
}其他{
$result.= substr($str,$index,1);
$index+=1;
}
}
回傳$結果;
- }
$str = "你好中國";
echo gbk_substr($str, 5);
-
functionutf8_substr($string,$length){//----- -------utf8編碼截取中文字串------------- ;
$index=0;
$result='';
for($i=0;$i
$first_b=substr($字串,$index,1);
if(ord($first_b)>224){ p>
$result.= substr($string,$index ,3);
$index+=3;
}elseif (ord($first_b>192)){
$result.= substr($string,$index,2);
$index+=2;
} 否則{
$result.= substr($string,$index,1);
$index+ =1;
-
}
}
回傳$結果;
}
$str = "你好中國";
-
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);
}否則{
echo$path.'/'.$file,' ';
}
}
}
$dir_name = 'E:/amp/apache/htdocs/mvc';
scan_dirs($dir_name ); p>
-
function get_ext1($file_name){//--------------取得檔案後綴名----------
return strrchr($file_name, '.');
}
function get_ext2($file_name) { p>
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['副檔名'];
}
-
function get_ext5($file_name){ > ;
return strrev(substr(strrev($file_name), 0,strpos(strrev($ file_name), '.')));
}< ;/p>
echoget_ext5('E:/amp/apache/htdocs/mvc/init.html' );
functionmaopao($arr){/ /-----冒泡排序法------------
$flag=false;
$count= count($arr);
for($i=0;$i
for($j=0;$j
if($arr [$j]>$arr[$j+1]){
$tmp=$arr[$j];
$arr[$j ]=$arr[$j+1];
$arr[$j+1]=$tmp;
$flag=true; p>
}
}
if($flag){
$flag=false ;
}否則{
中斷;
}
} p>
return$arr;
}
$arr=內存(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;
}返回$arr;
}
$arr= 群集(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+1]=$arr[$insertIndex];
$insertIndex--;
}
$arr[$insertIndex+1]=$insertVal;
}
-
return$arr;
}
$arr= 備份(12,78,49,68,59,67,93,34,46 ,33);
var_dump(insertSort($arr));
function fastSort($array){//----快速排序法----------
if(count($array)
$key = $array[0];
$left_arr = 吞吐量();
$right_arr = array();
for($i=1; $i; if ($array[$i]
; $left_arr[] = $array[$i];
否則
$right_arr[] = $array[$i];
}
$left_arr = Quick_sort($left_arr);
$right_arr = Quick_sort($right_arr);
回傳 array_merge($left_arr, array($key) , $right_arr);
}
$arr=內存(12,78,49,68,59,67,93,34,46,33);
var_dump(quickSort($arr));
function seqSch($arr, $num){//---順序查找----- p>
$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
returnerFen ($arr,$num,$midIndex+1,$rightIndex);
}否則{
return$midIndex;
-
}
}
$arr=array(3,5,7,8,9,23,26,36);
$leftIndex= 0;
$rightIndex=count($arr);
var_dump(erFen($arr,36, $leftIndex,$rightIndex) );
- ?>
複製程式碼
|