當你PHP學成之後,接下來就是找工作了,我們都知道PHP開發工程師找工作是需要筆試來面試的,那麼在面試之前,我們一定要做好充足的準備。所以以下就是小編給大家整理的兩套PHP開發工程師面試需要的考卷題目,希望對大家有多幫助。
第一套試卷
一、PHP開發部分
#1.合併兩個陣列有幾種方式,試比較它們的異同
2.請寫一個函數來檢查使用者提交的資料是否為整數(不區分資料類型,可以為二進位、八進位、十進位、十六進位數字)
3. PHP的strtolower()和strtoupper()函數在安裝非中文系統的伺服器下可能會導致將漢字轉換為亂碼,請寫兩個替代的函數實作相容Unicode文字的字串大小寫轉換
# 4. PHP的is_writeable()函數存在Bug,無法準確判斷一個目錄/檔案是否可寫,請寫一個函數來判斷目錄/檔案是否絕對可寫
5. PHP的chmod()函數存在Bug,無法保證設定成功,請寫一個函數在指定路徑下建立目錄/檔案並確保可以正確設定權限掩碼
6. 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的記憶體池及其記憶體管理機制、垃圾回收機制1、以下題目,除了程式設計任務外其他都需要寫在提供給你的草紙上。紙張是珍貴的地球資源,請節省使用。程式設計任務在有對應的環境時,會要求上機書寫,實在沒有條件,就只能寫在草紙上了。
第二套試題
基礎任務+進階任務+設計任務= 90分鐘
程式設計任務= 60分鐘
基礎任務:
1、請列舉你能想到的UNIX信號,並說明信號用途。
2、請列舉、你能想到的所有的字串查找演算法,並加註簡單說明。
3、有一個IP位址(192.168.0.1),請寫出其32位元無符號整數形式。
4、寫出、你能想到的所有HTTP回傳狀態值,並說明用途(例如:返回404表示找不到頁面)
基礎任務-選作(會得到額外分數):
1、畫幾個你最熟悉的SERVER端模型出來(格式不重要,盡量將圖畫清楚,說明思路即可)
進階任務:
1、PHP的垃圾收集機制是怎麼樣的?
說明:
1)如果,你熟悉PHP源碼,那麼請從源碼入手,回答些問題,會獲得額外加分
2)如果,你不熟悉PHP源碼,那麼盡你所能,多寫點東西,包括利用自己的程式直覺得到的訊息,都可以。
3)對,則有分,錯誤不扣,不寫無分。
2、請寫出HTTP頭,並符合以下要求:
1)這是一個post請求
2)目標:http://www.example. com:8080/test
3)POST變數:
username:test
pwd: test2
intro: Hello world!
4)包含以下COOKIE資訊:
cur_query: you&me
說明:
1)如果,你記不得某個HTTP協定中的指令字了,那麼,無奈這舉是用「漢字」代替。
2)如果,你能記住更多的HTTP協定指令字,那麼多寫幾句,總是沒壞處,對吧?
3)最關鍵的,只需要畫出正確的「輪廓」(還記得httpwatch等工具列印出來的頭部嗎?那就是「輪廓」的意思),也會有分數,但如果,連「輪廓」都寫錯了,那麼就很遺憾了。
設計任務:
1、最近總是有人騷擾我們的投票模組,需要你來設計一個投票限制的東東
要求如下:
1)要求每個QQ號碼(假設此QQ號碼在UNIT32內可以表示)10分鐘這裡只能投5票。
2)我們的用戶很踴躍,平均每天要有2000萬人左右透過此程式投票。
說明:
1)無需寫程式碼,只需要圖跟文字即可。
2)對於關鍵邏輯,請用圖加程式碼表示出來,這也是對你文字表達能力的考驗。
3)對你能想到的所有的邊界條件列出來,這是對你邏輯思維全面與敏捷性的考驗。
4)儲存部分,盡你所能吧。如果,你需要一個自己設計的儲存層,那麼把這個儲存層的實現,用文字+圖片方式描述清楚,要是設計合理,你會獲得華麗的獎分。
程式設計任務:
1、我們碰到了*煩,一個新來的傳教士惹惱了上帝,上帝很憤怒,要求我們把聖經(bbe.txt)背熟,直至他說哪個單詞,我們就要飛快的回答出這個單字在第幾行第幾個單字位置。聽說你是個優秀的程式設計師,那麼髟助我們完成這個不可能的任務吧。
要求如下:
1)/myworks/example/bbe.txt,98版本英文聖經一本
2)輸入部分要求如下:php ./example.php [單字]
3)輸出部分如下:[單字] 1,2 2,4 5,6 表示:此字在1行2列(第二個字),2行4列…
說明:
1)此文本4MB之巨…
2)單字的意思:由英文字母(大小寫),數字(0-9)組成的字串
3)提供給你的機器OS為ubuntu 9.10,內存只有1G,而且,很不幸的,其中700M用來做了別的
4)上機考試不允許上網,但我裝了man文檔以及讀取CHM以及PDF的閱讀器,在電腦的桌面的CHM資料夾中,有對應的PHP參考手冊
5)演算法複雜度要求不能大於O(N^2) (就是N的平方)
6)什麼? PHP低效且用起來不順手,好的,你可以用別的語言來實現。但注意:提供給你的機器上只有python 2.4/perl 5.8/gcc[g++] 4.1
總結:不管面試什麼,自信是很重要的,希望當年面試PHP開發工程師的時候這兩套題目能幫助你,同時也希望面試的PHPer能上自己理想的工作。
相關推薦:
以上是適合PHP開發工程師的兩套試卷的詳細內容。更多資訊請關注PHP中文網其他相關文章!