php经典面试题(纯代码版)

WBOY
Freigeben: 2016-07-25 08:59:23
Original
780 Leute haben es durchsucht
  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;

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

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

  32. $index+=2;

  33. }else{

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

  35. $index+=1;

  36. }

  37. }

  38. returnimplode(array_reverse($arr));

  39. }

  40. $str=’中文.look!’;

  41. echo utf8_strrev($str);

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

  43. $index=0;

  44. $result=’’;

  45. for($i=0;$i

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

  47. if(ord($first_b)>127){

  48. $result.= substr($str,$index,2);

  49. $index+=2;

  50. }else{

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

  52. $index+=1;

  53. }

  54. }

  55. return$result;

  56. }

  57. $str = "你好china";

  58. echo gbk_substr($str, 5);

  59. functionutf8_substr($string,$length){//-----------utf8编码截取中文字符串-------------

  60. $index=0;

  61. $result=’’;

  62. for($i=0;$i

  63. $first_b=substr($string,$index,1);

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

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

  66. $index+=3;

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

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

  69. $index+=2;

  70. }else{

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

  72. $index+=1;

  73. }

  74. }

  75. return$result;

  76. }

  77. $str = "你好china";

  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. }else{

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

  88. }

  89. }

  90. }

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

  92. scan_dirs($dir_name);

  93. function get_ext1($file_name){//--------------获取文件后缀名----------

  94. return strrchr($file_name, ’.’);

  95. }

  96. function get_ext2($file_name){

  97. return substr($file_name,strrpos($file_name, ’.’));

  98. }

  99. function get_ext3($file_name){

  100. $arr=explode(’.’, $file_name);

  101. return array_pop($arr);

  102. }

  103. function get_ext4($file_name){

  104. $p = pathinfo($file_name);

  105. return$p[’dirname’].’------’.$p[’basename’].’------’.$p[’extension’];

  106. }

  107. function get_ext5($file_name){

  108. return strrev(substr(strrev($file_name), 0,strpos(strrev($file_name), ’.’)));

  109. }

  110. echoget_ext5(’E:/amp/apache/htdocs/mvc/init.html’);

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

  112. $flag=false;

  113. $count= count($arr);

  114. for($i=0;$i

  115. for($j=0;$j

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

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

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

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

  120. $flag=true;

  121. }

  122. }

  123. if($flag){

  124. $flag=false;

  125. }else{

  126. break;

  127. }

  128. }

  129. return$arr;

  130. }

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

  132. var_dump(maopao($arr));

  133. functionxuanze($arr){//---------选择排序----------

  134. for($i=0;$i

  135. $minIndex=$i;

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

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

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

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

  140. $minIndex=$j;

  141. }

  142. }

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

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

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

  146. }return$arr;

  147. }

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

  149. var_dump(xuanze($arr));

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

  151. for($i=1;$i

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

  153. $insertIndex=$i-1;

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

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

  156. $insertIndex--;

  157. }

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

  159. }

  160. return$arr;

  161. }

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

  163. var_dump(insertSort($arr));

  164. function quickSort($array){//-----快速排序法----------

  165. if(count($array)

  166. $key = $array[0];

  167. $left_arr = array();

  168. $right_arr = array();

  169. for($i=1; $i

  170. if ($array[$i]

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

  172. else

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

  174. }

  175. $left_arr = quick_sort($left_arr);

  176. $right_arr = quick_sort($right_arr);

  177. return array_merge($left_arr, array($key), $right_arr);

  178. }

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

  180. var_dump(quickSort($arr));

  181. function seqSch($arr, $num){//---顺序查找-----

  182. $flag=false;

  183. for($i=0;$i

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

  185. echo ’找到了,下标为:’.$i;

  186. $flag=true;

  187. }

  188. }

  189. if(!$flag){

  190. echo ’找不到’;

  191. }

  192. }

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

  194. seqSch($arr,34);

  195. functionerFen($arr,$num,$leftIndex,$rightIndex){//----二分查找---前提数组比为有序数组---

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

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

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

  199. if($midValue>$num){

  200. returnerFen($arr,$num,$leftIndex,$midIndex-1);

  201. }elseif($midValue

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

  203. }else{

  204. return$midIndex;

  205. }

  206. }

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

  208. $leftIndex=0;

  209. $rightIndex=count($arr);

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

  211. ?>
复制代码


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!