>백엔드 개발 >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. while($first_b=substr($string,$index,1)){

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

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

  30. $index =3;

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

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

  33. $index =2;

  34. }else{

  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<$length;$i ){

  47. $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 = "你好china";

  59. echo gbk_substr($str, 5);

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

    ;
  61. $index=0;

  62. $result='';

  63. for($i=0;$i<$length;$i ){

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

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

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

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

  73. $index =1;

  74. }

  75. }

  76. return$result;

  77. }

  78. $str = "你好china";

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

  80. functionscan_dirs($path){//------遍历目录------------

  81. $path_source=opendir($path);

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

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

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

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

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

  87. }else{

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

  89. }

  90. }

  91. }

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

  93. scan_dirs($dir_name);

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

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

  96. }

  97. function get_ext2($file_name) {

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

  99. }

  100. function get_ext3($file_name){

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

  102. return array_pop($arr);

  103. }

  104. function get_ext4($file_name){

  105. $p = pathinfo($file_name);

  106. return$p['dirname'].'------'.$p['basename'].'-- ----'.$p['extension'];

  107. }

  108. function get_ext5($file_name){

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

  110. }< ;/p>

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

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

  113. $flag=false;

  114. $count= count($arr);

  115. for($i=0;$i<$count-1;$i ){

  116. for($j=0;$j<$count-1-$i;$j ){

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

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

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

  120. $arr[$j 1]=$tmp;

  121. $flag=true;

  122. }

  123. }

  124. if($flag){

  125. $flag=false;

  126. }else{

  127. break;

  128. }

  129. }

  130. return$arr;

  131. }

  132. $arr=배열(12,78,49,68,59,67,93,34,46,33);

  133. var_dump(maopao($arr));

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

  135. for($i=0;$i

  136. $minIndex=$i;

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

  138. for($j=$i 1;$j

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

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

  141. $minIndex=$j;

  142. }

  143. }

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

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

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

  147. }return$arr;

  148. }

  149. $arr=배열(12,78,49,68,59,67,93,34,46,33);

  150. var_dump(xuanze($arr));

  151. functioninsertSort($arr){//------------插入排序법------ ---

  152. for($i=1;$i

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

  154. $insertIndex=$i-1;

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

  156. $arr[$insertIndex 1]=$arr[$insertIndex];

  157. $insertIndex--;

  158. }

  159. $arr[$insertIndex 1]=$insertVal;

  160. }

  161. return$arr;

  162. }

  163. $arr=배열(12,78,49,68,59,67,93,34,46,33);

  164. var_dump(insertSort($arr));

  165. function QuickSort($array){//-----快速排序법----------< /p>

  166. if(count($array) <= 1) return $array;

  167. $키 = $배열[0];

  168. $left_arr = 배열();

  169. $right_arr = 배열();

  170. for($i=1; $i

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

  172. $left_arr[] = $배열[$i];

  173. 그렇지 않으면

  174. $right_arr[] = $배열[$i];

  175. }

  176. $left_arr = Quick_sort($left_arr);

  177. $right_arr = Quick_sort($right_arr);

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

  179. }

  180. $arr=배열(12,78,49,68,59,67,93,34,46,33);

  181. var_dump(quickSort($arr));

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

  183. $flag=false;

  184. for($i=0;$i

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

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

  187. $flag=true;

  188. }

  189. }

  190. if(!$flag){

  191. echo ’找不到’;

  192. }

  193. }

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

    ;
  195. functionsFen($arr,$num,$leftIndex,$rightIndex){// 기본값---

  196. if($leftIndex>=$rightIndex){return'unload';}

  197. $midIndex=floor(($leftIndex $rightIndex)/2); $midValue=$arr[$midIndex];

  198. if($midValue>$num){

  199. returnFen($arr,$num,$leftIndex,$midIndex-1);

  200. }elseif($midValue<$num){

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

  202. }else{

  203. return $midIndex ;

  204. }

  205. }

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

  207. $leftIndex= 0;

  208. $rightIndex=count($arr);

  209. ?>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.