- 相關(guān)推薦
騰訊php開(kāi)發(fā)工程師面試問(wèn)題
騰訊PHP開(kāi)發(fā)工程師問(wèn)題
一、PHP開(kāi)發(fā)部分
1.合并兩個(gè)數組有幾種方式,試比較它們的異同
2.請寫(xiě)一個(gè)函數來(lái)檢查用戶(hù)提交的數據是否為整數(不區分數據類(lèi)型,可以為二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制數字)
3.PHP的strtolower()和strtoupper()函數在安裝非中文系統的服務(wù)器下可能會(huì )導致將漢字轉換為亂碼,請寫(xiě)兩個(gè)替代的函數實(shí)現兼容Unicode文字的字符串大小寫(xiě)轉換
4.PHP的is_writeable()函數存在Bug,無(wú)法準確判斷一個(gè)目錄/文件是否可寫(xiě),請寫(xiě)一個(gè)函數來(lái)判斷目錄/文件是否絕對可寫(xiě)
5.PHP的chmod()函數存在Bug,無(wú)法保證設置成功,請寫(xiě)一個(gè)函數在指定路徑下創(chuàng )建一個(gè)目錄/文件并確?梢哉_設置權限掩碼
6.PHP處理上傳文件信息數組中的文件類(lèi)型$_FILES['type']由客戶(hù)端瀏覽器提供,有可能是黑客偽造的信息,請寫(xiě)一個(gè)函數來(lái)確保用戶(hù)上傳的圖像文件類(lèi)型真實(shí)可靠
7.PHP通過(guò)對數據的URL編碼來(lái)實(shí)現與Javascript的數據交互,但是對于部分特殊字符的編解碼與Javascript的規則不盡相同,請具體說(shuō)明這種差異,并針對UTF-8字符集的數據,寫(xiě)出PHP的編解碼函數和Javascript的編解碼函數,確保PHP編碼數據可以被 Javascript正確解碼 、Javascript編碼的數據可以被PHP正確解碼
8.試闡述Memcache的key多節點(diǎn)分布的算法?當任一節點(diǎn)出現故障時(shí)PHP的Memcache客戶(hù)端將如何處置?如何確保Memcache數據讀寫(xiě)操作的原子性?
9.如何實(shí)現PHP的安全最大化?怎樣避免SQL注入漏洞和XSS跨站腳本攻擊漏洞?
10.請設計一個(gè)數據結構可以實(shí)現無(wú)限級子菜單的樹(shù)型菜單功能并提供菜單生成算法,用UML描述設計并寫(xiě)出相關(guān)PHP代碼
二、系統相關(guān)部分
1.請簡(jiǎn)述Linux、FreeBSD、Soalaris、Mac OS、Windows幾種系統下進(jìn)程與線(xiàn)程的內核實(shí)現方式、管理機制的異同
2.請簡(jiǎn)述Linux/BSD系統下進(jìn)程間通訊的方式有哪些,并具體說(shuō)明在PHP下如何實(shí)現
3.請簡(jiǎn)述Linux/BSD系統下系統的消息/事件異步通知機制有幾種,并加以比較
4.簡(jiǎn)單比較TCP/UDP協(xié)議的異同,對于PHP的Socket擴展與Stream擴展,試比較兩者基于TCP/UDP協(xié)議的SOCKET編程差異?
5.為什么會(huì )出現僵死進(jìn)程(孤兒進(jìn)程)?怎樣查看僵死進(jìn)程?如何解決僵死進(jìn)程問(wèn)題?
6.對于System-V消息隊列,如何解決系統本身對于消息隊列條數、總容量(字節數)的限制?如何設置消息的優(yōu)先級別?請比較阻塞模式和非阻塞模式的異同,并說(shuō)明如何避免非阻塞模式下的消息隊列堵塞?
7.請描述Apache 2.x版本的MPM(Multi-Processing Module)機制,并具體說(shuō)明在不同的MPM機制下如何支持PHP?
8.請簡(jiǎn)述PHP在A(yíng)pache下的幾種運行方式并加以比較?如何讓PHP在Linux+Apache下以Fast CGI方式運行?
9. 請寫(xiě)出讓PHP能夠在命令行下以腳本方式執行時(shí)安裝PHP所必須指定的configure參數,并說(shuō)明如何在命令行下運行PHP腳本(寫(xiě)出兩種方式)同時(shí)向PHP腳本傳遞參數?
10.請簡(jiǎn)述PHP 5.2的內存池及其內存管理機制、垃圾回收機制
騰訊PHP開(kāi)發(fā)工程師問(wèn)題
1 . 請對 POSIX 風(fēng)格和兼容 Perl 風(fēng)格兩種正則表達式的主要函數進(jìn)行類(lèi)比說(shuō)明
ereg preg_match
ereg_replace preg_replace
2 . 請說(shuō)明在 php .ini 中 safe_mode 開(kāi)啟之后對于 PHP 系統 函數的影響
3 . PHP5 中魔術(shù) 方法 函數有哪幾個(gè),請舉例說(shuō)明各自的用法
__sleep
__wakeup
__toString
__set_state
__construct,
__destruct
__call,
__get,
__set,
__isset,
__unset
__sleep,
__wakeup,
__toString,
__set_state,
__clone
__autoload
4 . 請寫(xiě)出讓?zhuān)⒄f(shuō)明如何在命令行下運行 PHP 腳本(寫(xiě)出兩種方式)同時(shí)向 PHP 腳本傳遞參數?
1. Php filename.php $agr1 $agr2
2. php –r “”
5 . PHP 的垃圾收集機制是怎樣的
6 .使對象可以像數組一樣進(jìn)行 foreach 循環(huán),要求屬性必須是私有。
(Iterator 模式的 PHP5 實(shí)現,寫(xiě)一類(lèi)實(shí)現 Iterator 接口 )
7 .請寫(xiě)一段 PHP 代碼 ,確保多個(gè)進(jìn)程同時(shí)寫(xiě)入同一個(gè)文件 成功
8 . 用 PHP 實(shí)現一個(gè)雙向隊列
9 . 使用正則表達式提取一段標識語(yǔ)言( html 或 xml )代碼段中指定標簽的指定屬性值(需考慮屬性值對不規則的情況,如大小寫(xiě)不敏感,屬性名值與等號間有空格等)。此處假設需提取 test 標簽的 attr 屬性值,請自行構建包含該標簽的串
【騰訊php開(kāi)發(fā)工程師面試問(wèn)題】相關(guān)文章:
騰訊php程序員面試題目及答案08-03
PHP高級開(kāi)發(fā)工程師崗位的具體職責03-24
PHP中級開(kāi)發(fā)工程師的具體職責范圍09-15