ホームページ >バックエンド開発 >PHPチュートリアル >PHP の古典的な面接の質問 (純粋なコード バージョン)

PHP の古典的な面接の質問 (純粋なコード バージョン)

WBOY
WBOYオリジナル
2016-07-25 08:59:23830ブラウズ
  1. /**

  2. * php インタビューの質問
  3. * bbs.it-home.org を編集
  4. * 2013-05-13 に
  5. */
  6. functiongbk_strrev($str){//---gbk中文字符串翻转-----
  7. $len= strlen($str);
  8. for($i=0;$i<$len;$i++){
  9. $char=$str{0};
  10. if(ord($char)>127){
  11. $i++;
  12. if($i<$len){
  13. $arr[]=substr($str,0,2);
  14. $str=substr($str,2);
  15. }

  16. }else{

  17. $arr[]=$char;
  18. $str=substr($str,1);
  19. }
  20. }
  21. returnimplode(array_reverse($arr));
  22. }

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

  24. echo gbk_strrev($str);

  25. functionutf8_strrev ($string){//-----utf8中文翻转--------

  26. $index=0;

  27. $length=strlen($string);

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

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

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

  31. $index+=3;

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

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

  34. $index+=2;

  35. }else{

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

  37. $index+=1;

  38. }

  39. }

  40. returnimplode(array_reverse($arr));

  41. }

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

  43. echo utf8_strrev($str);

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

  45. $index=0;

  46. $result=””;

  47. for($i=0;$i

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

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

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

  50. $index+=2;

  51. }else{

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

  53. $index+=1;

  54. }

  55. }

  56. return$result;

  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

    $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 = "你好中国";

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

  79. $path_source=opendir($path);

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

  81. //if(is_dir($path.’/’.$file)&&$file!= ’.’&&$file !=’..’){

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

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

  84. scan_dirs($path.’/’.$file);

  85. }else{

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

  87. }

  88. }

  89. }

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

  91. scan_dirs($dir_name);

  92. < ;p>function get_ext1($file_name){//--------------获取文件次缀名----------

  93. return strrchr($file_name, '.');

  94. }

  95. function get_ext2($file_name){

  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['extension'];

  105. }

  106. function get_ext5($file_name){

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

  108. }

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

  110. $flag=false;

  111. $count= count($arr);

  112. for($i=0;$i

    for($j=0;$j

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

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

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

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

  116. $flag=true;

  117. }

  118. }

  119. if($flag){

  120. $flag=false;

  121. }else{

  122. 休憩;

  123. }

  124. }

  125. return$arr;

  126. }

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

  128. var_dump(maopao($arr));

  129. functionxuanze($arr){//---------选择排序----------< /p>

  130. for($i=0;$i

    $minIndex=$i;

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

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

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

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

  134. $minIndex=$j;

  135. }

  136. }

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

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

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

  140. }return$arr;

  141. }

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

  143. var_dump(xuanze($arr));

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

  145. for($i=1;$i

    $insertVal=$arr[$i];

  146. $insertIndex=$i-1;

  147. while($insertIndex>=0&&$insertVal<=$arr[$insertIndex]){

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

  149. $insertIndex--;

  150. }

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

  152. }

  153. return$arr;

  154. }

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

  156. var_dump(insertSort($arr));

  157. function QuickSort($array){//-----快速排序法----------

  158. if(count($array)

  159. $key = $array[0];

  160. $left_arr = 配列();

  161. $right_arr = array();

  162. for($i=1; $i

    if ($array[$i] <= $key)

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

  164. それ以外

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

  166. }

  167. $left_arr = クイックソート($left_arr);

  168. $right_arr = Quick_sort($right_arr);

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

  170. }

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

  172. var_dump(quickSort($arr));

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

  174. for($i=0;$i

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

  175. echo '找到了,下标範囲:'.$i;

  176. $flag=true;

  177. }

  178. }

  179. if(!$flag){

  180. echo '找不到';

  181. }

  182. }

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

  184. seqSch($arr ,34);

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

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

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

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

  189. if($midValue>$num){

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

  191. }elseif($midValue

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

  192. }else{

  193. return$midIndex;

  194. }

  195. }

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

  197. $leftIndex=0;< /p>

  198. $rightIndex=count($arr);

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

  200. ?>

复制帽


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。