【ci框架】PHP常見面試題彙總。。。


分類: 【CodeIgniter深刻研究】   31人閱讀  評論(0)  收藏  舉報

[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第1題:用PHP打印出前一天的時間格式,如:"2015-01-21 14:42:09" 
  3.  */  
  4.   
  5. echo date("Y-m-d H:i:s",strtotime("-1 day"))."<br/>";  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第2題:用PHP打印出上週的時間格式,如:"2015-01-15 14:42:09" 
  3.  */  
  4.   
  5. echo date("Y-m-d H:i:s",strtotime("-1 week"))."<br/>";  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第3題:用PHP打印出上個月的時間格式,如:"2014-12-22 14:42:09" 
  3.  */  
  4.   
  5. echo date("Y-m-d H:i:s",strtotime("-1 month"))."<br/>";  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第4題:簡述一下echo、print、print_r 區別 
  3.  * print_r()主要用來輸出數組的結構;echo 和 print 主要用來輸出字符串,只不過echo 可同時輸出多個字符串,print 只能輸出一個字符串; 
  4.  * echo 和 print 區別: 
  5.         (1)使用命令方式來輸出字符串,此時不須要小括號;看我的習慣,我的習慣使用命令方式來輸出字符串 
  6.         (2)使用函數方式來輸出字符串,echo無返回值,print有返回值,成功返回 1,失敗返回 0 
  7.  */  
  8.   
  9. print_r(array("hello world"))."<br/>";  
  10.   
  11. echo (print "ddd")."<br/>";  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第5題:如何實現字符串反轉,如:"abcdefg" 反轉成 "gfedcba";兩種方式:(1)調用php自帶的strrev()函數 (2)自定義函數 strrevv 
  3.  */  
  4.   
  5. echo strrev("abcdefg")."<br/>";  
  6.   
  7. $str = "abcdefg";  
  8. function strrevv($str){  
  9.     $len=strlen($str);  
  10.     $newstr = '';  
  11.     for($i=$len-1;$i>=0;$i--){  
  12.         $newstr .= $str{$i};  
  13.     }  
  14.     return $newstr;  
  15. }  
  16. $showstr = strrevv($str);  
  17. echo $showstr."<br>";  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第6題:如何實現中文字符串截取無亂碼的方法(mb_*系列函數),首先:須要開啓 extension=php_mbstring.dll 擴展 ,結果:"你" 
  3.  */  
  4.   
  5. echo mb_substr("你好",0,1,"gb2312")."<br/>";  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第7題:用PHP寫出顯示客戶端和服務器端IP的代碼 
  3.  */  
  4.   
  5. $_SERVER['REMOTE_ADDR'];  
  6. $_SERVER['SERVER_ADDR'];  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第8題:mysql中 IFNULL 控制流函數;IFNULL() 
  3.  * IFNULL(): 
  4.  *      (1)它有兩個參數,而且對第一個參數進行判斷。 
  5.  *      (2)若是第一個參數不是NULL,函數就會向調用者返回第一個參數;若是是NULL,將返回第二個參數; 
  6.  * 例如: 
  7.  *      SELECT IFNULL(1,2), IFNULL(NULL,10), IFNULL(4*NULL,'false');//結果:"1 10  false" 
  8.  */  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第9題:簡述include與require的區別? 
  3.  * 相同點: 
  4.  *      (1)include與require都能把另一個文件包含到當前文件中 
  5.  * 異同點: 
  6.  *      (1)使用include時,當包含的文件不存在時系統會報出警告級別的錯誤,但並不影響程序的後續執行. 
  7.  *      (2)使用require時,當包含的文件不存在時系統會先報出警告級別的錯誤,接着又報出一個致命性的錯誤,將終止程序的後續執行. 
  8.  *      (3)require只會解釋包含的文件一次,不會再解釋第二次,於是效率相對較高;而include則會重複的解釋包含的文件 
  9.  *      (4)載入時機不一樣:require在運行前載入包含文件,include在運行時載入包含文件 
  10.  */  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第10題:如何獲取一個字符串中指定的字符? 
  3.  */  
  4.   
  5.  $str="abcdefg";  
  6.  echo $str{2}."<br/>";  

[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第11題:如何批量替換字符串中的特定字符?如:"批量替換$content內容字符串中的全部雙引號爲單引號" 
  3.  */  
  4.   
  5. $content = str_replace($searchs=array("\""), $replaces=array("'"), $content);  

[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第12題:如何將UEditor或FCkeditor編輯器中的內容轉化爲JSON串? 
  3.  * 
  4.  *  (1)第一種狀況,內容中只有雙引號的狀況: 
  5.  *      $content='<img alt="" src="../image/20121025/20121025105514_1093.jpg" />'; 
  6.  *      // {"content":"<img alt=\"\" src=\"..\/image\/20121025\/20121025105514_1093.jpg\" \/>"} 
  7.  *      echo json_encode(array("content"=>$content)); 
  8.  *  (2)第二種狀況,內容中只有單引號的狀況: 
  9.  *      $content="<img alt='' src='../image/20121025/20121025105514_1093.jpg' />"; 
  10.  *      // {"content":"<img alt='' src='..\/image\/20121025\/20121025105514_1093.jpg' \/>"} 
  11.  *      echo json_encode(array("content"=>$content)); 
  12.  *  (3)第三種狀況,內容中既有雙引號,又有單引號的狀況: 
  13.  *      $content=htmlspecialchars($content);//把一些預約義的字符轉換爲HTML實體 
  14.  *      $json_arr = json_encode(array("content"=>$content));//將數組json化爲字符串 
  15.  *      $arr = json_decode($json_arr,true);//將json串反json化爲數組 
  16.  *      $arr['content']=htmlspecialchars_decode($arr['content']);//把一些預約義的HTML實體轉換爲字符顯示到網頁中 
  17.  *       
  18.  */  

[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第13題:addslashes()與 htmlspecialchars() 區別 
  3.  * 
  4.  * 區別: 
  5.  
  6.  *   (1)addslashes()函數主要在指定的預約義字符前添加反斜槓,這些預約義字符主要包括: 
  7.  * 
  8.  *      單引號 (') 
  9.  *      雙引號 (") 
  10.  *      反斜槓 (\) 
  11.  *      NULL 
  12.  * 
  13.  *      addslashes()函數的主要做用是保證這些預約義字符可以正確入庫,僅此而已 
  14.  * 
  15.  * 
  16.  * (2)htmlspecialchars()函數把一些預約義的字符轉換爲HTML實體,這些預約義字符主要包括: 
  17.  * 
  18.  *       
  19.  *      & (和號)      成爲 &amp; 
  20.  *      " (雙引號)     成爲 &quot; 
  21.  *      ' (單引號)     成爲 &#039; 
  22.  *      < (小於)       成爲 &lt; 
  23.  *      > (大於)       成爲 &gt; 
  24.  * 
  25.  *      echo htmlspecialchars($str, ENT_COMPAT);  //默認,僅編碼雙引號 
  26.  *      echo htmlspecialchars($str, ENT_QUOTES);  //編碼雙引號和單引號 
  27.  *      echo htmlspecialchars($str, ENT_NOQUOTES);//不編碼任何引號 
  28.  * 
  29.  */  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第14題:如何去除數組中重複的值?使用數組函數 array_unique() 能夠作到 
  3.  * 案例結果: 
  4.  *     Array( 
  5.  *          [0] => 8535455928182811 
  6.  *          [1] => 1558999140182811 
  7.  *          [3] => 5795844841182811 
  8.  *     ) 
  9.  */  
  10.   
  11.  $arr=array(  
  12.       "8535455928182811",  
  13.       "1558999140182811",  
  14.       "1558999140182811",  
  15.       "5795844841182811",  
  16.       "5795844841182811",  
  17.  );  
  18.   
  19.  $ordersn_arr=array_unique($arr);  
  20.  echo "<pre>";print_r($ordersn_arr);exit;  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /* 
  2. * 第15題:說一說本身對$GLOBALS全局變量和global關鍵字的理解?   
  3. * 
  4. * (1)、輸出$GLOBALS全局變量: 
  5.  
  6. *    echo "<pre>";print_r($GLOBALS); 
  7.  
  8. *    結果: 
  9. *    Array 
  10. *       ( 
  11. *           [GLOBALS] => Array 
  12. *              *RECURSION* 
  13. *           [_POST] => Array 
  14. *               ( 
  15. *                  [username] => admin     //等價於$_POST['username'] 
  16. *                  [password] => 123       //等價於$_POST['password'] 
  17. *               ) 
  18. *           [_GET] => Array 
  19. *               ( 
  20. *                  [username] => admin     //等價於$_GET['username'] 
  21. *                  [password] => 123       //等價於$_GET['password'] 
  22. *               ) 
  23. *           [_COOKIE] => Array 
  24. *               ( 
  25. *                   [PHPSESSID] => movgbv4t1klb9fsbcd7ns8ik73 
  26. *                   [username] => admin     //等價於$_COOKIE['username'] 
  27. *                   [password] => 123       //等價於$_COOKIE['password'] 
  28. *               ) 
  29. *           [_FILES] => Array 
  30. *               ( 
  31. *                  [name] => 1.txt         //等價於$_FILES['username'] 
  32. *                  [type] => image/jpeg    //等價於$_FILES['password'] 
  33. *               ) 
  34. *           [_SESSION] => Array 
  35. *               ( 
  36. *                  [username] => admin     //等價於$_SESSION['username'] 
  37. *                  [password] => 123       //等價於$_SESSION['password'] 
  38. *               ) 
  39. *           [pwd] => 134121233             //等價於$pwd 
  40. *           [username] => xiaoqiang        //等價於$username 
  41. *           [password] => 123              //等價於$password 
  42. *       ) 
  43.  
  44. * (2)、幾種等價的寫法: 
  45. *   
  46. *    (1)$_SESSION['username']等價於$GLOBALS['_SESSION']['username'] 
  47. *    (2)$_COOKIE['username']等價於$GLOBALS['_COOKIE']['username'] 
  48. *    (3)$_GET['username']等價於$GLOBALS['_GET']['username'] 
  49. *    (4)$_POST['username']等價於$GLOBALS['_POST']['username'] 
  50. *    (5)$_FILES['username']等價於$GLOBALS['_FILES']['username'] 
  51. *    (6)$username等價於$GLOBALS['username'] 
  52.  
  53. * (3)、global關鍵字: 
  54.  
  55. *    php中全局變量在函數體內使用時必須聲明爲global;在函數體內經過global關鍵字聲明的變量自動變爲函數體外的全局變量 
  56. * 
  57. *    案例1: 
  58. * 
  59. *    function test(){ 
  60. *       global $username;//聲明全局變量時不能賦值 
  61. *       $username="小強";//此時能夠給全局變量賦值 
  62. *    } 
  63. *    test(); 
  64. *    echo "<pre>";print_r($GLOBALS);exit;//結果:"小強" 
  65. * 
  66. *    案例2: 
  67. * 
  68. *    $username="小強"; 
  69. *    function test(){ 
  70. *       global $username;//聲明全局變量時不能賦值(提示:使用global關鍵字引用函數體外的$username變量) 
  71. *       $username="小紅";//此時能夠給全局變量賦值(提示:將函數體外$username變量從新賦值) 
  72. *    } 
  73. *    test(); 
  74. *    echo "<pre>";print_r($GLOBALS);exit;//結果:"小紅" 
  75.  
  76. * (4)、全局變量的生效範圍: 
  77.  
  78. *    $a = 1;include 'b.inc';//這裏變量$a將會在包含文件b.inc中生效 
  79.  
  80. * (5)、global聲明的變量爲全局變量,在函數和類的外部照樣能夠使用 
  81.  
  82. *    如:discuz_application.php類中使用global關鍵字聲明的$_G全局變量,在全站均可以使用 
  83. */  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. /** 
  2.  * 第16題:回調函數 call_user_func() 如何使用? 
  3.  * 格式一: 
  4.  *    call_user_func("自定義函數","傳遞給自定義函數的參數1","傳遞給自定義函數的參數2","傳遞給自定義函數的參數3","傳遞給自定義函數的參數N....");//返回結果爲自定義函數的返回結果 
  5.  * 格式二: 
  6.  *    call_user_func(array("類名","方法名"),"傳遞給類中方法的參數1","傳遞給類中方法的參數2","傳遞給類中方法的參數3","傳遞給類中方法的參數N....");//返回結果爲類中方法的返回結果 
  7.  * 格式三: 
  8.  *    call_user_func_array("自定義函數",array("傳遞給類中方法的參數1","傳遞給類中方法的參數2","傳遞給類中方法的參數3","傳遞給類中方法的參數N...."));//傳遞給函數的參數統一放到數組中 
  9.  * 格式四: 
  10.  *    call_user_func_array(array("類名","方法名"),array("傳遞給類中方法的參數1","傳遞給類中方法的參數2","傳遞給類中方法的參數3","傳遞給類中方法的參數N...."));//傳遞給方法的參數統一放到數組中 
  11.  */  
  12. function uc_feed_add($icon$uid$username$title_template=''$title_data=''$body_template=''$body_data=''$body_general=''$target_ids=''$images = array()) {  
  13.          //UC_API_FUNC值爲:'uc_api_mysql'或'uc_api_post';  
  14.          //調用自定義函數'uc_api_mysql'或'uc_api_post'  
  15.          //返回結果爲自定義函數的返回結果  
  16.          return call_user_func(UC_API_FUNC, 'feed''add',  
  17.                  array(  'icon'=>$icon,  
  18.                          'appid'=>UC_APPID,  
  19.                          'uid'=>$uid,//用戶ID  
  20.                          'username'=>$username,  
  21.                          'title_template'=>$title_template,  
  22.                          'title_data'=>$title_data,  
  23.                          'body_template'=>$body_template,  
  24.                          'body_data'=>$body_data,  
  25.                          'body_general'=>$body_general,  
  26.                          'target_ids'=>$target_ids,  
  27.                          'image_1'=>$images[0]['url'],  
  28.                          'image_1_link'=>$images[0]['link'],  
  29.                          'image_2'=>$images[1]['url'],  
  30.                          'image_2_link'=>$images[1]['link'],  
  31.                          'image_3'=>$images[2]['url'],  
  32.                          'image_3_link'=>$images[2]['link'],  
  33.                          'image_4'=>$images[3]['url'],  
  34.                          'image_4_link'=>$images[3]['link']  
  35.                  )  
  36.          );  
  37.  }  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. //第17題:如何使用 array_multisort() 函數實現對多維數組進行排序?  
  2. //模擬從數據庫中查詢出來的記錄(提示:二維數組)  
  3. $arr[] = array("age"=>20,"name"=>"小強");  
  4. $arr[] = array("age"=>21,"name"=>"李偉");  
  5. $arr[] = array("age"=>20,"name"=>"小亮");  
  6. $arr[] = array("age"=>22,"name"=>"黎明");  
  7.    
  8. foreach ($arr as $key=>$value){  
  9.     $age[$key]  = $value['age']; //排序字段 "age"  
  10.     $name[$key] = $value['name'];//排序字段 "name"  
  11. }  
  12.   
  13. /** 
  14.  * 一、對 $arr 數組進行排序 
  15.  *    首先按照年齡從大到小的順序排列,若是年齡相同再按照名字的順序排序,相似於sql中的order by 
  16.  * 二、注意事項: 
  17.  *    (1)$age和$name  等價於 數據表的"age"和"name"列字段,相似於 "order by age desc,name asc"  
  18.  *    (2)排序順序標誌: 
  19.  *          SORT_ASC - 按照上升順序排序 
  20.  *          SORT_DESC - 按照降低順序排序 
  21.  *    (3)排序類型標誌: 
  22.  *          SORT_REGULAR - 將項目按照一般方法比較 
  23.  *          SORT_NUMERIC - 將項目按照數值比較 
  24.  *          SORT_STRING  - 將項目按照字符串比較 
  25.  *    (4)排序標誌的默認值爲: SORT_ASC 和 SORT_REGULAR 
  26.  *    (5)每一個一維數組後指定的排序標誌僅僅對該一維數組有效,一個一維數組不能指定兩個同類的排序標誌 
  27.  *    (6)該函數會改變數字索引,其它索引不改變 
  28.  * 
  29.  */  
  30. array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$arr);  
  31. echo "<pre>";print_r($arr);exit;  
  32. /** 
  33.  * 結果: 等價於 "select * from user order by age desc,name asc"; 
  34.  * Array( 
  35.  *   [0] => Array 
  36.  *       ( 
  37.  *           [age] => 22 
  38.  *           [name] => 黎明 
  39.  *       ) 
  40.  *   [1] => Array 
  41.  *       ( 
  42.  *           [age] => 21 
  43.  *           [name] => 李偉 
  44.  *       ) 
  45.  *   [2] => Array 
  46.  *       ( 
  47.  *           [age] => 20 
  48.  *           [name] => 小亮 
  49.  *       ) 
  50.  *   [3] => Array 
  51.  *       ( 
  52.  *           [age] => 20 
  53.  *           [name] => 小強 
  54.  *       ) 
  55.  * ) 
  56.  */  
[php]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. //第18題:移除數組中元素中的幾種方式?  
  2. //案例一:  
  3. $arr1 = array('1','2','3','4');  
  4. //提示:雖然刪除了元素,可是沒有重建數組索引  
  5. unset($arr1[2]);  
  6. echo "<pre>";print_r($arr1);  
  7. /** 
  8.  *  使用unset()函數處理後的結果: 
  9.  *  Array( 
  10.  *      [0] => 1 
  11.  *      [1] => 2 
  12.  *      [3] => 4 
  13.  *  ) 
  14.  */  
  15.   
  16. //案例二:  
  17. $arr2 = array('1','2','3','4');  
  18. //提示:刪除了元素,而且重建了數組索引  
  19. array_splice($arr2, 2, 1);//參數2-開始位置 參數3-刪除元素數量  
  20. echo "<pre>";print_r($arr2);  
  21. /** 
  22.  *  使用array_splice()函數處理後的結果: 
  23.  *  Array( 
  24.  *      [0] => 1 
  25.  *      [1] => 2 
  26.  *      [2] => 4 
  27.  *  ) 
  28.  */  
  29.   
  30. //案例三:  
  31. $arr3 = array('1','2','3','4');  
  32. //提示:刪除了元素,被移除的元素由參數4來替代  
  33. array_splice($arr3, 2, 1,array("5"));//參數1-原數組 參數2-開始位置 參數3-刪除元素數量 參數4-替換被移除元素的數組  
  34. echo "<pre>";print_r($arr3);  
  35. /** 
  36.  *  使用array_splice()函數處理後的結果: 
  37.  *  Array( 
  38.  *      [0] => 1 
  39.  *      [1] => 2 
  40.  *      [2] => 5 
  41.  *      [3] => 4 
  42.  *  ) 
  43.  */  
  44.   
  45. //案例四:  
  46. $arr4 = array('1','2','3','4');  
  47. //提示:從數組中截取一段元素並返回(返回的數組索引被重建)  
  48. $arr5 = array_slice($arr4, 2, 1);//參數2-開始位置 參數3-刪除元素數量  
  49. echo "<pre>";print_r($arr5);  
  50. /** 
  51.  *  使用array_slice()函數處理後的結果: 
  52.  *  Array( 
  53.  *      [0] => 3 
  54.  *  ) 
  55.  */
相關文章
相關標籤/搜索