PHP 開發工程師筆試試卷 姓名 :__________ 第一部分為必答題,第二、三部分任選其一回答 一、 PHP 開發部分 1.合併兩個陣列有幾種方式,試比較它們的異同。 2.請寫一個函式來檢查使用者提交的資料是否為整數(不區分資料型別,可以為二進位制、八進位制、十進位制、十六進位制數字)。 3PHP的strtolower()和strtoupper()函式在安裝非中文系統的伺服器下可能會導致將漢字轉換為亂碼,請寫兩個替代的函式實現相容Unicode文字的字串大小寫轉換 4PHP的is_writeable()函式存在Bug,無法準確判斷一個目錄檔案是否可寫,請寫一個函式來判斷目錄檔案是否絕對可寫 5PHP的chmod()函式存在Bug,無法保證設定成功,請寫一個函式在指定路徑下建立一個目錄/檔案並確保可以正確設定許可權掩碼 PHP 處理上傳檔案資訊陣列中的檔案型別 $_FILES['type'] 由客戶端瀏覽器提供,有可能 是黑客偽造的資訊,請寫一個函式來確保使用者上傳的影象檔案型別真實可靠 7 . PHP 通過對資料的 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 的記憶體池及其記憶體管理機制、垃圾回收機制 三、 WEB 相關部分 1 .請比較說明 HTML 與 XHTML 過渡標準、嚴格標準之間的區別,指出具體的標籤差異 2 . Javascript 指令碼如何實現和頁面其它資源併發下載、 避免阻塞?請列舉 3-5 種 Javascript 指令碼併發載入的實現方式,並比較異同和優劣 3 . Yahoo 的 Web 優化 34 條原則是什麼? 4 .請說明 HTTP 狀態碼 200 , 302 , 304 以及 cache 所代表的含義,以及在 Web 優化上的作用 5 .請具體說明 IE 、 FireFox 、 Safari 、 Opera 四種瀏覽器對於 JS 事件處理機制的差異,並 寫出能夠多瀏覽器支援的 JS 事件處理程式碼 6 .請簡述 MySQL3.23 、 4.0 、 4.1 、 5.0 、 5.1 、 6.0 這些主要版本之間的差異,並說明如何實 現資料庫升級並確保資料安全、資料格式和字符集編碼正確? 7 .使用 PHP 寫出 MySQL 預查詢、事務處理、儲存過程、觸發器、檢視實現方式及適用場合 8 .請比較 MySQL 各種資料表型別,並說明各自的用法和限制 9 .請列舉 MySQL 各種定長和變長欄位型別,並說明其儲存資料的長度限制、佔用位元組數 10 .請說明 MySQL 主從映象、 Cluster 這兩種叢集的不同實現方式及各自的資料同步原理, 並比較兩種叢集方式的優缺點