The PHP interview questions compiled in this article mainly come from two methods: one is the string and file operation example, and the other is the examples of several commonly used sorting algorithms. Let's take a look at them. The PHP interview questions compiled in this article mainly come from two methods: one is the string and file operation example, and the other is the examples of several commonly used sorting algorithms. Let's take a look at them.
Script ec (2); script
The following are four common questions, mainly examining the degree of understanding of string functions and file operation-related functions.
1. PHP flip Chinese strings
| The Code is as follows: |
|
Function reverse ($ str ){ $ R = array (); For ($ I = 0; $ I $ R [] = mb_substr ($ str, $ I, 1, 'utf-8 '); } Return implode (array_reverse ($ r )); } Echo reverse ('www .111cn.net PHP blog '); // Result: 'taobao PHP moc. ahphp. wwww'
|
2. PHP calculates the URL File suffix
| The Code is as follows: |
|
Function getext ($ url ){ $ Data = parse_url ($ url ); $ Path = $ data ['path']; $ Info = pathinfo ($ path ); Return $ info ['extension']; } Echo getext ('HTTP: // www.111cn.net /'); // Result: 'html' |
3. PHP calculates the relative path of the two files
| The Code is as follows: |
|
Function getrpath ($ path, $ conpath ){ $ PathArr = explode ('/', $ path ); $ ConpathArr = explode ('/', $ conpath ); $ Dismatchlen = 0; For ($ I = 0; $ I If ($ conpathArr [$ I]! = $ PathArr [$ I]) { $ Dismatchlen = count ($ pathArr)-$ I; $ Arrleft = array_slice ($ pathArr, $ I ); Break; } } Return str_repeat ('../', $ dismatchlen). implode ('/', $ arrleft ); } $ A = '/a/B/c/d/e. php '; $ B = '/a/B/12/34/5. php '; Echo getrpath ($ a, $ B ); // Result: '../c/d/e. php' |
4. PHP traverses all files and folders in the directory
| The Code is as follows: |
|
Function finddir ($ dir ){ $ Files = array (); If (is_dir ($ dir )){ If ($ handle = opendir ($ dir )){ While ($ file = readdir ($ handle ))! = False ){ If ($ file! = '.' & $ File! = '..'){ If (is_dir (rtrim ($ dir, '/'). '/'. $ file )){ $ Files [$ file] = finddir (rtrim ($ dir, '/'). '/'. $ file ); } Else { $ Files [] = rtrim ($ dir, '/'). '/'. $ file; } } } Closedir ($ handle ); } } Return $ files; } Print_r (finddir ('f:/Golang/src ')); // Result: Array ( [0] => F:/Golang/src/hello. go [1] => F:/Golang/src/src.exe [Test] => Array ( [0] => F:/Golang/src/test/sss.txt ) )
|
In addition to the basic functions of these string and file operations, the basic algorithms are also widely used in interviews. For more information, see the previous articles on the basic PHP algorithms.
Next we will share some of the most common algorithms that can be implemented using PHP.
1. Bubble Sorting
| The Code is as follows: |
|
Function bubble_sort ($ arr ){ $ N = count ($ arr ); For ($ I = 0; $ I <$ n-1; $ I ++ ){ For ($ j = $ I + 1; $ j <$ n; $ j ++ ){ If ($ arr [$ j] <$ arr [$ I]) { $ Temp = $ arr [$ I]; $ Arr [$ I] = $ arr [$ j]; $ Arr [$ j] = $ temp; } } } Return $ arr; } |
2. Merge and sort
| The Code is as follows: |
|
Function Merge (& $ arr, $ left, $ mid, $ right ){ $ I = $ left; $ J = $ mid + 1; $ K = 0; $ Temp = array (); While ($ I <= $ mid & $ j <= $ right) { If ($ arr [$ I] <= $ arr [$ j]) $ Temp [$ k ++] = $ arr [$ I ++]; Else $ Temp [$ k ++] = $ arr [$ j ++]; } While ($ I <= $ mid) $ Temp [$ k ++] = $ arr [$ I ++]; While ($ j <= $ right) $ Temp [$ k ++] = $ arr [$ j ++]; For ($ I = $ left, $ j = 0; $ I <= $ right; $ I ++, $ j ++) $ Arr [$ I] = $ temp [$ j]; } Function MergeSort (& $ arr, $ left, $ right) { If ($ left <$ right) { $ Mid = floor ($ left + $ right)/2 ); MergeSort ($ arr, $ left, $ mid ); MergeSort ($ arr, $ mid + 1, $ right ); Merge ($ arr, $ left, $ mid, $ right ); } } |
3. Binary Search-recursion
| The Code is as follows: |
|
Function bin_search ($ arr, $ low, $ high, $ value ){ If ($ low> $ high) Return false; Else { $ Mid = floor ($ low + $ high)/2 ); If ($ value = $ arr [$ mid]) Return $ mid; Elseif ($ value <$ arr [$ mid]) Return bin_search ($ arr, $ low, $ mid-1, $ value ); Else Return bin_search ($ arr, $ mid + 1, $ high, $ value ); } } |
4. Binary Search-non-recursive
| The Code is as follows: |
|
Function bin_search ($ arr, $ low, $ high, $ value ){ While ($ low <= $ high ){ $ Mid = floor ($ low + $ high)/2 ); If ($ value = $ arr [$ mid]) Return $ mid; Elseif ($ value <$ arr [$ mid]) $ High = $ mid-1; Else $ Low = $ mid + 1; } Return false; }
|
5. Fast sorting
| The Code is as follows: |
|
Function quick_sort ($ arr ){ $ N = count ($ arr ); If ($ n <= 1) Return $ arr; $ Key = $ arr [0]; $ Left_arr = array (); $ Right_arr = array (); For ($ I = 1; $ I <$ n; $ I ++ ){ If ($ arr [$ I] <= $ key) $ Left_arr [] = $ arr [$ I]; Else $ Right_arr [] = $ arr [$ I]; } $ Left_arr = quick_sort ($ left_arr ); $ Right_arr = quick_sort ($ right_arr ); Return array_merge ($ left_arr, array ($ key), $ right_arr ); } |
6. Select sorting
| The Code is as follows: |
|
Function select_sort ($ arr ){ $ N = count ($ arr ); For ($ I = 0; $ I <$ n; $ I ++ ){ $ K = $ I; For ($ j = $ I + 1; $ j <$ n; $ j ++ ){ If ($ arr [$ j] <$ arr [$ k]) $ K = $ j; } If ($ k! = $ I ){ $ Temp = $ arr [$ I]; $ Arr [$ I] = $ arr [$ k]; $ Arr [$ k] = $ temp; } } Return $ arr; } |
7. Insert sorting
| The Code is as follows: |
|
Function insertSort ($ arr ){ $ N = count ($ arr ); For ($ I = 1; $ I <$ n; $ I ++ ){ $ Tmp = $ arr [$ I]; $ J = $ I-1; While ($ arr [$ j]> $ tmp ){ $ Arr [$ j + 1] = $ arr [$ j]; $ Arr [$ j] = $ tmp; $ J --; If ($ j <0) Break; } } Return $ arr; } |
Of course, there will be more examples of other operations such as database operations or some basic functions. We will not write them here. You can find them in local articles.