亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP的文件操作與算法實現的面試題示例

2024-05-04 23:38:42
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP的文件操作與算法實現的面試題示例,選擇了一些最具代表性和最基礎的題目進行了歸納,需要的朋友可以參考下

操作文件

1.使用5種以上的方式獲取一個文件的擴展名

要求: dir/upload.image.jpg, 找出.jpg或者jpg

 

 
  1. <?php  
  2. /**  
  3. * 五種方式獲取指定路徑的文件擴展名  
  4. */ 
  5.  
  6. $str = "dir/upload.image.jpg";  
  7.  
  8. function one ($str)  
  9. {  
  10. $arr = explode('.', $str);  
  11. $count = count($arr);  
  12.  
  13. return $arr[$count - 1];  
  14. }  
  15.  
  16. function two ($str)  
  17. {  
  18. $len = strlen($str);  
  19.  
  20. for ($i = $len - 1, $name = ''; $str[$i] != '.'; $i --) {  
  21. $name .= $str[$i];  
  22. }  
  23. $name = strrev($name);  
  24.  
  25. return $name;  
  26. }  
  27.  
  28. function three($str)  
  29. {  
  30. $path = pathinfo($str);  
  31.  
  32. return $path['extension'];  
  33. }  
  34.  
  35. function four($str)  
  36. {  
  37. $arr = explode('.', $str);  
  38.  
  39. return array_pop($arr);  
  40. }  
  41.  
  42. function five($str)  
  43. {  
  44. $start = strrpos($str, '.');  
  45.  
  46. return substr($str, $start + 1);  
  47. }  
  48.  
  49. echo one($str);  
  50. echo "<br>";  
  51.  
  52. echo two($str);  
  53. echo "<br>";  
  54.  
  55. echo three($str);  
  56. echo "<br>";  
  57.  
  58. echo four($str);  
  59. echo "<br>";  
  60.  
  61. echo five($str);  
  62. echo "<br>";  

2.寫一個php函數算出兩個文件的相對路徑。例如$a="/a/b/c/d/e.php"; $b="/a/b/12/34/c.php",B相對于A的相對路徑是什么?

這道題目可以看成是求第一個公共節點的題目,網上流傳的代碼大部分是錯的,考慮不周全,當然我這個也只是用“../”去表示,沒用"./"

 

 
  1. <?php  
  2.  
  3. /**  
  4. * 求$b相對于$a的相對路徑  
  5. * @param string $a  
  6. * @param string $b  
  7. * @return string  
  8. */ 
  9. function getRelativePath ($a, $b)  
  10. {  
  11. $patha = explode('/', $a);  
  12. $pathb = explode('/', $b);  
  13.  
  14. $counta = count($patha) - 1;  
  15. $countb = count($pathb) - 1;  
  16.  
  17. $path = "../";  
  18. if ($countb > $counta) {  
  19. while ($countb > $counta) {  
  20. $path .= "../";  
  21. $countb --;  
  22. }  
  23. }  
  24.  
  25. // 尋找第一個公共結點  
  26. for ($i = $countb - 1; $i >= 0;) {  
  27. if ($patha[$i] != $pathb[$i]) {  
  28. $path .= "../";  
  29. $i --;  
  30. else { // 判斷是否為真正的第一個公共結點,防止出現子目錄重名情況  
  31. for ($j = $i - 1, $flag = 1; $j >= 0; $j --) {  
  32. if ($patha[$j] == $pathb[$j]) {  
  33. continue;  
  34. else {  
  35. $flag = 0;  
  36. break;  
  37. }  
  38. }  
  39.  
  40. if ($flag)  
  41. break;  
  42. else 
  43. $i ++;  
  44. }  
  45. }  
  46.  
  47. for ($i += 1; $i <= $counta; $i ++) {  
  48. $path .= $patha[$i] . "/";  
  49. }  
  50.  
  51. return $path;  
  52. }  
  53.  
  54. $a = "/a/c/d/e.php";  
  55. $b = "/a/c.php";  
  56.  
  57. $path = getRelativePath($a, $b);  
  58. echo $path;  

算法

1.使用PHP描述冒泡排序和快速排序,對象可以是一個數組

 

 
  1. <?php  
  2.  
  3. /**  
  4. * 冒泡排序算法實現(從小到大)  
  5. */ 
  6. function maopaoSort (&$array)  
  7. {  
  8. $count = count($array);  
  9.  
  10. for ($i = 0; $i < $count - 1; $i ++) {  
  11. for ($j = 0; $j < $count - $i - 1; $j ++) {  
  12. if ($array[$j] > $array[$j + 1]) {  
  13. $tmp = $array[$j];  
  14. $array[$j] = $array[$j + 1];  
  15. $array[$j + 1] = $tmp;  
  16. }  
  17. }  
  18. }  
  19. }  
  20.  
  21. /**  
  22. * 快速排序  
  23. */ 
  24. function pivotParation (&$array, $start, $end)  
  25. {  
  26. $stand = $array[$start];  
  27.  
  28. while ($start < $end) {  
  29. while ($start < $end && $array[$end] >= $stand) {  
  30. $end --;  
  31. }  
  32. if ($start < $end) {  
  33. $array[$start ++] = $array[$end];  
  34. }  
  35.  
  36. while ($start < $end && $array[$start] <= $stand) {  
  37. $start ++;  
  38. }  
  39. if ($start < $end) {  
  40. $array[$end --] = $array[$start];  
  41. }  
  42. }  
  43.  
  44. $array[$start] = $stand;  
  45.  
  46. return $start;  
  47. }  
  48.  
  49. function quickSort (&$array, $begin, $end)  
  50. {  
  51. if ($begin < $end) {  
  52. $pivot = pivotParation($array, $begin, $end);  
  53. quickSort($array, $begin, $pivot - 1);  
  54. quickSort($array, $pivot + 1, $end);  
  55. }  
  56. }  
  57.  
  58. $arr = array(  
  59. 5,  
  60. 1,  
  61. 3,  
  62. 2,  
  63. 19,  
  64. 11,  
  65. 25,  
  66. 12,  
  67. 100,  
  68. 10000,  
  69. 12  
  70. );  
  71.  
  72. // 冒泡排序  
  73. maopaoSort($arr);  
  74. print_r($arr);  
  75. echo "<br>";  
  76.  
  77. // 快速排序  
  78. $count = count($arr);  
  79. quickSort($arr, 0, $count - 1);  
  80. print_r($arr);  

2.使用php描述順序查找和二分查找

 

 
  1. <?php  
  2.  
  3. /**  
  4. * 順序查找  
  5. */ 
  6. function seqSearch ($arr, $needle)  
  7. {  
  8. for ($i = 0, $len = count($arr); $i < $len; $i ++) {  
  9. if ($arr[$i] == $needle) {  
  10. return $i;  
  11. }  
  12. }  
  13. return - 1;  
  14. }  
  15.  
  16. /**  
  17. * 二分查找  
  18. */ 
  19. function midSearch ($arr, $start, $end, $needle)  
  20. {  
  21. while ($start <= $end) {  
  22. $mid = (int)($start + ($end - $start) / 2); // 防止超出整數表示范圍  
  23.  
  24. if ($arr[$mid] == $needle) {  
  25. return $mid;  
  26. else if ($arr[$mid] > $needle) {  
  27. $end = $mid - 1;  
  28. else {  
  29. $start = $mid + 1;  
  30. }  
  31. }  
  32.  
  33. return - 1;  
  34. }  
  35.  
  36. $arr = array(  
  37. 1,  
  38. 2,  
  39. 3,  
  40. 4,  
  41. 5,  
  42. 6,  
  43. 7,  
  44. 8,  
  45. 9,  
  46. 10  
  47. );  
  48.  
  49. $needle = 5;  
  50.  
  51. echo seqSearch($arr, $needle);  
  52. echo "<br>";  
  53.  
  54. echo midSearch($arr, 0, count($arr) - 1, $needle);  

3.寫一個二維數組排序算法函數,能夠具有通用性,可以調用php內置函數

 

 
  1. /**  
  2. * Description:獲取中樞點的位置  
  3.  
  4. * @param array $array  
  5. * @param int $left  
  6. * @param int $right  
  7. * @param string $field  
  8. * @return int  
  9. */ 
  10. function fetchArrayPivot (&$array, $left, $right, $field)  
  11. {  
  12. // 基準定義  
  13. $stand = $array[$left];  
  14.  
  15. // 遍歷數組  
  16. while ($left < $right) {  
  17. while ($left < $right && $array[$right][$field] >= $stand[$field]) {  
  18. $right --;  
  19. }  
  20. if ($left < $right) {  
  21. $array[$left ++] = $array[$right];  
  22. }  
  23.  
  24. while ($left < $right && $array[$left][$field] <= $stand[$field]) {  
  25. $left ++;  
  26. }  
  27. if ($left < $right) {  
  28. $array[$right --] = $array[$left];  
  29. }  
  30. }  
  31.  
  32. // 獲取中樞點位置  
  33. $array[$left] = $stand;  
  34.  
  35. return $left;  
  36. }  
  37.  
  38. /**  
  39. * Description:快速排序主程序  
  40.  
  41. * @param array $array  
  42. * @param int $begin  
  43. * @param int $end  
  44. * @param string $field  
  45. */ 
  46. function quickSort (&$array, $begin, $end, $field)  
  47. {  
  48. // 變量定義  
  49. $pivot = null;  
  50.  
  51. if ($begin < $end) {  
  52. $pivot = fetchArrayPivot($array, $begin, $end, $field);  
  53. quickSort($array, $begin, $pivot - 1, $field);  
  54. quickSort($array, $pivot + 1, $end, $field);  
  55. }  
  56. }  

利用快排的思想,增加一個field參數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美裸体xxxx极品少妇软件| 日韩电影第一页| 国内外成人免费激情在线视频网站| 91久久国产精品91久久性色| 国产亚洲精品久久久优势| 日韩中文字幕视频在线| 久久在线视频在线| 成人午夜在线影院| 亚洲视频精品在线| 亚洲欧美中文日韩在线v日本| 国产日韩欧美黄色| 91综合免费在线| 成人欧美一区二区三区黑人| 日韩在线观看网址| 91视频免费在线| 国产精品一久久香蕉国产线看观看| 国产精品美女www| 草民午夜欧美限制a级福利片| 国产69精品久久久| 国产精品jizz在线观看麻豆| 欧美中文字幕视频在线观看| 色综合五月天导航| 国产一区二区黄| 中日韩美女免费视频网址在线观看| 欧美另类老肥妇| 亚洲国产精彩中文乱码av| 国产精品中文字幕在线| 亚洲小视频在线观看| 欧美美最猛性xxxxxx| 欧美一级电影免费在线观看| 国产精品久久av| 亚洲成人免费在线视频| 亚洲欧美日韩精品久久亚洲区| 精品亚洲国产成av人片传媒| 97国产精品视频| 国产亚洲人成a一在线v站| 中文字幕日韩电影| 精品国产区一区二区三区在线观看| 深夜精品寂寞黄网站在线观看| 国产午夜精品视频| 国产在线不卡精品| 亚洲第一黄色网| 91精品久久久久久久久久久| 欧美性猛交xxxx富婆弯腰| 国产人妖伪娘一区91| 精品久久久久国产| 亚洲精品电影网| 成人国产精品久久久久久亚洲| 亚洲精品成人av| 在线亚洲午夜片av大片| 亚洲精品国产精品国自产在线| 欧美性猛交xxxx| 久久九九全国免费精品观看| 欧美一区二区三区图| 久久久999精品免费| 久久久久久久电影一区| 国产精品久久99久久| 91老司机精品视频| 亚洲精品一区中文| 欧美极品少妇xxxxx| 国产一区二区三区日韩欧美| 国产精品老牛影院在线观看| 欧美在线免费看| 日韩小视频在线| www.亚洲天堂| 色偷偷av一区二区三区乱| 大荫蒂欧美视频另类xxxx| 亚洲天天在线日亚洲洲精| 欧美中文字幕在线| 韩曰欧美视频免费观看| 亚洲精选中文字幕| 亚洲精美色品网站| 亚洲欧洲av一区二区| 精品久久在线播放| 黄色精品一区二区| 国产精品扒开腿做爽爽爽男男| 亚洲视频综合网| 国产成人一区二区| 日韩欧美国产黄色| 亚洲精品资源美女情侣酒店| 日韩av在线免费观看一区| 欧美亚洲视频在线看网址| 在线国产精品播放| 91精品久久久久久久久久入口| 国产成一区二区| 中文字幕视频一区二区在线有码| 97香蕉久久超级碰碰高清版| 精品久久久国产精品999| 久久亚洲一区二区三区四区五区高| 日韩美女免费视频| 亚洲人午夜精品| 亚洲理论电影网| 欧美自拍视频在线| 精品国产一区二区三区在线观看| 精品一区二区三区四区| 国产精品十八以下禁看| 欧美性xxxxx| 亚洲人成人99网站| 亚洲91av视频| 人体精品一二三区| 亚洲色图第一页| 欧美疯狂做受xxxx高潮| 激情懂色av一区av二区av| 色老头一区二区三区| 欧美视频国产精品| 国产日韩换脸av一区在线观看| 欧美成人一区二区三区电影| 日韩av在线网址| 久久成人在线视频| 日韩在线观看电影| 精品欧美一区二区三区| 日韩激情片免费| 日韩在线免费观看视频| 国产香蕉一区二区三区在线视频| 91免费看片网站| 国产精品视频大全| 亚洲精品综合精品自拍| 亚洲国模精品私拍| 欧美亚洲国产精品| 亚洲日本aⅴ片在线观看香蕉| 国产日韩在线免费| 亚洲的天堂在线中文字幕| 国产拍精品一二三| 亚洲专区中文字幕| 国产精品久久久久久久天堂| 欧美精品在线视频观看| 欧美肥臀大乳一区二区免费视频| 91精品久久久久久久久久久久久| 最近2019中文字幕mv免费看| 日韩欧美成人精品| 日韩美女视频中文字幕| 亚洲激情小视频| 午夜精品视频网站| 日韩中文在线中文网三级| 日韩av在线网页| 日韩在线免费观看视频| 欧美肥臀大乳一区二区免费视频| 成人xxxxx| www亚洲欧美| 精品一区二区三区四区| 精品偷拍各种wc美女嘘嘘| 91精品国产网站| 久久久久久亚洲精品中文字幕| 热久久视久久精品18亚洲精品| 美日韩丰满少妇在线观看| 欧美日韩一区二区在线播放| 成人午夜激情网| 色综合天天综合网国产成人网| 久久久亚洲网站| 午夜精品国产精品大乳美女| 日韩高清欧美高清| 中国china体内裑精亚洲片| 精品一区二区三区电影| 亚洲欧美日韩精品久久| 国产精品网址在线| 不卡中文字幕av| 欧美大片在线看| 青草青草久热精品视频在线观看| 国产aaa精品| 精品毛片网大全| 亚洲人成啪啪网站| 日av在线播放中文不卡| 国产精品成人av在线| 日韩电影中文字幕在线|