騰訊php開發工程師面試問題

學識都 人氣:2.62W

騰訊PHP開發工程師問題

騰訊php開發工程師面試問題

一、PHP開發部分

1.合併兩個數組有幾種方式,試比較它們的異同

2.請寫一個函數來檢查用戶提交的數據是否爲整數(不區分數據類型,可以爲二進制、八進制、十進制、十六進制數字)

的strtolower()和strtoupper()函數在安裝非中文系統的服務器下可能會導致將漢字轉換爲亂碼,請寫兩個替代的函數實現兼容Unicode文字的字符串大小寫轉換

的is_writeable()函數存在Bug,無法準確判斷一個目錄/文件是否可寫,請寫一個函數來判斷目錄/文件是否絕對可寫

的chmod()函數存在Bug,無法保證設置成功,請寫一個函數在指定路徑下創建一個目錄/文件並確保可以正確設置權限掩碼

處理上傳文件信息數組中的文件類型$_FILES['type']由客戶端瀏覽器提供,有可能是黑客僞造的信息,請寫一個函數來確保用戶上傳的圖像文件類型真實可靠

通過對數據的URL編碼來實現與Javascript的數據交互,但是對於部分特殊字符的編解碼與Javascript的規則不盡相同,請具體說明這種差異,並針對UTF-8字符集的數據,寫出PHP的編解碼函數和Javascript的編解碼函數,確保PHP編碼數據可以被 Javascript正確解碼 、Javascript編碼的`數據可以被PHP正確解碼

8.試闡述Memcache的key多節點分佈的算法?當任一節點出現故障時PHP的Memcache客戶端將如何處置?如何確保Memcache數據讀寫操作的原子性?

9.如何實現PHP的安全最大化?怎樣避免SQL注入漏洞和XSS跨站腳本攻擊漏洞?

10.請設計一個數據結構可以實現無限級子菜單的樹型菜單功能並提供菜單生成算法,用UML描述設計並寫出相關PHP代碼

二、系統相關部分

1.請簡述Linux、FreeBSD、Soalaris、Mac OS、Windows幾種系統下進程與線程的內核實現方式、管理機制的異同

2.請簡述Linux/BSD系統下進程間通訊的方式有哪些,並具體說明在PHP下如何實現

3.請簡述Linux/BSD系統下系統的消息/事件異步通知機制有幾種,並加以比較

4.簡單比較TCP/UDP協議的異同,對於PHP的Socket擴展與Stream擴展,試比較兩者基於TCP/UDP協議的SOCKET編程差異?

5.爲什麼會出現僵死進程(孤兒進程)?怎樣查看僵死進程?如何解決僵死進程問題?

6.對於System-V消息隊列,如何解決系統本身對於消息隊列條數、總容量(字節數)的限制?如何設置消息的優先級別?請比較阻塞模式和非阻塞模式的異同,並說明如何避免非阻塞模式下的消息隊列堵塞?

7.請描述Apache 2.x版本的MPM(Multi-Processing Module)機制,並具體說明在不同的MPM機制下如何支持PHP?

8.請簡述PHP在Apache下的幾種運行方式並加以比較?如何讓PHP在Linux+Apache下以Fast CGI方式運行?

9. 請寫出讓PHP能夠在命令行下以腳本方式執行時安裝PHP所必須指定的configure參數,並說明如何在命令行下運行PHP腳本(寫出兩種方式)同時向PHP腳本傳遞參數?

10.請簡述PHP 5.2的內存池及其內存管理機制、垃圾回收機制

 騰訊PHP開發工程師問題

1 . 請對 POSIX 風格和兼容 Perl 風格兩種正則表達式的主要函數進行類比說明

ereg preg_match

ereg_replace preg_replace