首頁  >  文章  >  後端開發  >  php經典面試題(純程式碼版)

php經典面試題(純程式碼版)

WBOY
WBOY原創
2016-07-25 08:59:23781瀏覽
  1. /**

  2. * php 面試題
  3. * edit bbs.it-home.org
  4. * at 2013-05-13
  5. */
  6. functiongbk_strrev($str){//-- -- gbk中文字串剪貼畫-----
  7. $len=strlen($str);
  8. for($i=0;$i $char=$str{0};
  9. if(ord($char)>127){
  10. $i++;
  11. if($i $arr[]=substr($str,0,2);
  12. $str=substr($str,2);
  13. }
  14. }else{

  15. $arr[]=$char;
  16. $str=substr($str,1);
  17. }
  18. }
  19. returnimplode(array_reverse($arr));
  20. }
  21. $str='中文.look!';

  22. echo gbk_strrev($str);

  23. functionutf8_strrev($string){//-----utf8中文教學--------

  24. $index=0;
  25. ; $length=strlen($string);

  26. while($first_b=substr($string,$index,1)){

  27. if(ord( $first_b)>224){

  28. $arr[]=substr($string,$index,3);

  29. $index+=3; p>

  30. $index+=3;

    p>
  31. }elseif(ord($first_b)>192){

  32. $arr[ ]=substr($string,$index,2);

  33. $index+=2;

  34. } 否則{

  35. $arr[]=substr($string,$index,1);

  36. $index+=1;

  37. }

  38. }

  39. returnimplode(array_reverse ($arr));

  40. }

  41. $str='中文. look!';

  42. echo utf8_strrev( $str);

  43. functiongbk_substr($str,$length){//-----gbk截取中文字串--------

  44. $index=0;

  45. $result='';

  46. for($i=0;$i

  47. $first_b=substr($str,$index,1);

  48. if(ord($first_b)>127){
  49. $result.= substr($str,$index,2);

  50. $index+ =2;

  51. }其他{

  52. $result.= substr($str,$index,1);

  53. $index+=1;

  54. }

  55. }

  56. 回傳$結果;

  57. }
  58. $str = "你好中國";

  59. echo gbk_substr($str, 5);

  60. functionutf8_substr($string,$length){//----- -------utf8編碼截取中文字串-------------

    ;
  61. $index=0;

  62. $result='';

  63. for($i=0;$i

  64. $first_b=substr($字串,$index,1);

  65. if(ord($first_b)>224){ p>

  66. $result.= substr($string,$index ,3);

  67. $index+=3;

  68. }elseif (ord($first_b>192)){

  69. $result.= substr($string,$index,2);

  70. $index+=2;

  71. } 否則{

  72. $result.= substr($string,$index,1);

  73. $index+ =1;

  74. }

    }

  75. 回傳$結果;

  76. }

  77. $str = "你好中國";

  78. echo (utf8_substr($str, 3));

  79. functionscan_dirs($path){//-----遍歷目錄---------- --

  80. $path_source=opendir($path);

  81. while(($file=readdir($path_source))!==false){

  82. //if(is_dir($path.'/'.$file)&&$file!= '.'&&$file !='..'){

  83. if(is_dir($path. '/' . $file) && $file != '.' && $file != '..') {

  84. echo$path .'/'.$file,'
    ';

  85. scan_dirs($path.'/'.$file);

  86. }否則{

  87. echo$path.'/'.$file,'
    ';

  88. }

  89. }

  90. }

  91. $dir_name = 'E:/amp/apache/htdocs/mvc';

  92. scan_dirs($dir_name ); p>

  93. function get_ext1($file_name){//--------------取得檔案後綴名----------

    return strrchr($file_name, '.');

  94. }

  95. function get_ext2($file_name) { p>

  96. return substr($file_name,strrpos($file_name, '.'));

  97. }

  98. function get_ext3($ file_name){

  99. $arr=explode('.', $file_name);

  100. return array_pop($arr);

  101. }

  102. function get_ext4($file_name){

  103. $p = pathinfo($file_name);

  104. return$p['dirname'].'------'.$p['basename'].'-- ----'.$p['副檔名'];

  105. }

  106. function get_ext5($file_name){

    > ;
  107. return strrev(substr(strrev($file_name), 0,strpos(strrev($ file_name), '.')));

  108. }< ;/p>

  109. echoget_ext5('E:/amp/apache/htdocs/mvc/init.html' );

  110. functionmaopao($arr){/ /-----冒泡排序法------------

  111. $flag=false;

  112. $count= count($arr);

  113. for($i=0;$i

  114. for($j=0;$j

  115. if($arr [$j]>$arr[$j+1]){

  116. $tmp=$arr[$j];

  117. $arr[$j ]=$arr[$j+1];

  118. $arr[$j+1]=$tmp;

  119. $flag=true; p>

  120. }

  121. }

  122. if($flag){

  123. $flag=false ;

  124. }否則{

  125. 中斷;

  126. }

  127. } p>

  128. return$arr;

  129. }

  130. $arr=內存(12,78,49,68,59,67,93,34,46,33);

  131. var_dump(maopao( $arr));

  132. functionxuanze($arr){//---------選擇排序----------

  133. for($i=0;$i

  134. $minIndex=$i;

  135. $minVal=$arr[$i];

  136. for($j=$i+1;$j

  137. if($minVal>$arr[$j]){

  138. $minVal=$arr[$j];

  139. $minIndex=$ j;

  140. }

  141. }

  142. $tmp=$arr[$i];

  143. $arr[$i]=$arr[$minIndex];

  144. $arr[$minIndex]=$tmp;

  145. }返回$arr;

  146. }

  147. $arr= 群集(12,78,49,68,59,67,93,34,46,33);

  148. var_dump(xuanze($arr));

  149. functioninsertSort($arr){//------------插入排序法------ ---

  150. for($i=1;$i

  151. $insertVal=$arr[$i];

  152. $insertIndex=$i-1;

  153. while($insertIndex>=0&&$insertVal

  154. $arr[$insertIndex+1]=$arr[$insertIndex];

  155. $insertIndex--;

  156. }

  157. $arr[$insertIndex+1]=$insertVal;

  158. }

  159. return$arr;

  160. }

  161. $arr= 備份(12,78,49,68,59,67,93,34,46 ,33);

  162. var_dump(insertSort($arr));

  163. function fastSort($array){//----快速排序法----------

  164. if(count($array)

  165. $key = $array[0];

  166. $left_arr = 吞吐量();

  167. $right_arr = array();

  168. for($i=1; $i

  169. ; if ($array[$i]

  170. ; $left_arr[] = $array[$i];

  171. 否則

  172. $right_arr[] = $array[$i];

  173. }

  174. $left_arr = Quick_sort($left_arr);

  175. $right_arr = Quick_sort($right_arr);

  176. 回傳 array_merge($left_arr, array($key) , $right_arr);

  177. }

  178. $arr=內存(12,78,49,68,59,67,93,34,46,33);

  179. var_dump(quickSort($arr));

  180. function seqSch($arr, $num){//---順序查找----- p>

  181. $flag=false;

  182. for($i=0;$i

  183. if($arr[$i]==$num){

  184. echo '找到了,下標為:'.$i;

  185. $flag=true;

  186. }

  187. }

  188. if(!$flag){

  189. echo '找不到';

  190. }

  191. }

  192. $arr=array(12,78,49,68,59,67,93,34,46,33);

  193. seqSch($arr ,34);

  194. functionerFen($arr,$num,$leftIndex,$rightIndex){//----二分查找---前提備份比為小區陣列---

  195. if($leftIndex>=$rightIndex){return'找不到';}

  196. ; $midIndex=floor(($leftIndex+$rightIndex)/ 2);

  197. $midValue=$arr[$midIndex];

  198. if($midValue>$num){

  199. returnerFen($arr,$num,$leftIndex,$midIndex-1);
  200. }elseif($midValue

  201. returnerFen ($arr,$num,$midIndex+1,$rightIndex);

  202. }否則{

  203. return$midIndex;

  204. }

  205. }

  206. $arr=array(3,5,7,8,9,23,26,36);

  207. $leftIndex= 0;

  208. $rightIndex=count($arr);

  209. var_dump(erFen($arr,36, $leftIndex,$rightIndex) );

  210. ?>
複製程式碼


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn