php面試題及詳細(xì)答案解析_第1頁(yè)
php面試題及詳細(xì)答案解析_第2頁(yè)
php面試題及詳細(xì)答案解析_第3頁(yè)
php面試題及詳細(xì)答案解析_第4頁(yè)
php面試題及詳細(xì)答案解析_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

php面試題及詳細(xì)答案解析php面試題及詳細(xì)答案1、給你四個(gè)坐標(biāo)點(diǎn),判斷它們能不能組成一個(gè)矩形,如判斷([0,0],[0,1],[1,1],[1,0])能組成一個(gè)矩形。勾股定理,矩形是對(duì)角線相等的四邊形。只要任意三點(diǎn)不在一條直線上,任選一點(diǎn),求這一點(diǎn)到另外三點(diǎn)的長(zhǎng)度的平方,兩個(gè)短的之和如果等于最長(zhǎng)的,那么這就是矩形。2、獲取當(dāng)前客戶端的IP地址,并判斷是否在(11,22)如果沒(méi)有使用代理服務(wù)器:$ip=$_SERVER[REMOTE_ADDR];使用透明代理$ip=$_SERVER[HTTP_X_FORWARDED_FOR];3、nginx的log_format配置如下:1log_formatmain‘remoteaddr?remote_user[timelocal]"request”’2‘statusbody_bytes_sent“httpreferer"″"http_user_agent”“upstreamresponsetime""request_time”“http_x_forwarded_for";從今天的nginxlog文件access.log中:a、列出“request_time”最大的20行?b、列出早上10點(diǎn)訪問(wèn)量做多的20個(gè)url地址?4、什么是CSRF攻擊?XSS攻擊?如何防范?CSRF:跨站請(qǐng)求偽造,可以通過(guò)通過(guò)判斷****和加Token的方式來(lái)防范。XSS:跨站腳本攻擊,可以通過(guò)對(duì)內(nèi)容轉(zhuǎn)義和過(guò)濾來(lái)防范,還有CSP5、從撲克牌中隨機(jī)抽5張牌,判斷是不是一個(gè)順子,即這5張牌是連續(xù)的這個(gè)問(wèn)題有個(gè)關(guān)鍵點(diǎn),撲克牌,1-13不能再多了。這就很簡(jiǎn)單了。用PHP來(lái)做,定義一個(gè)數(shù)組分別存著1到13,拿出一個(gè),置空一個(gè),最后看下這五個(gè)置空的是不是連續(xù)的。這種情況不考慮抽出的順序。6、兩條相交的單向鏈表,如何求它們的第一個(gè)公共節(jié)點(diǎn)思想:如果兩個(gè)鏈表相交,則從相交點(diǎn)開始,后面的節(jié)點(diǎn)都相同,即最后一個(gè)節(jié)點(diǎn)肯定相同;從頭到尾遍歷兩個(gè)鏈表,并記錄鏈表長(zhǎng)度,當(dāng)二者的尾節(jié)點(diǎn)不同,則二者肯定不相交;尾節(jié)點(diǎn)相同,如果A長(zhǎng)為L(zhǎng)A,B為L(zhǎng)B,如果LALB,則A前LA-LB個(gè)先跳過(guò)如果兩個(gè)單向鏈表有公共的結(jié)點(diǎn),也就是說(shuō)兩個(gè)鏈表從某一結(jié)點(diǎn)開始,它們的m_pNext都指向同一個(gè)結(jié)點(diǎn)。但由于是單向鏈表的結(jié)點(diǎn),每個(gè)結(jié)點(diǎn)只有一個(gè)m_pNext,因此從第一個(gè)公共結(jié)點(diǎn)開始,之后它們所有結(jié)點(diǎn)都是重合的,不可能再出現(xiàn)分叉。所以,兩個(gè)有公共結(jié)點(diǎn)而部分重合的鏈表,拓?fù)湫螤羁雌饋?lái)像一個(gè)Y,而不可能像X。7、最長(zhǎng)公共子序列問(wèn)題LCS,如有[1,2,5,11,32,15,77]和[99,32,15,5,1,77]兩個(gè)數(shù)組,找到它們共同都擁有的數(shù),寫出時(shí)間復(fù)雜度最優(yōu)的代碼,不能用array_intersect(這里有坑,需要去研究一下動(dòng)態(tài)規(guī)劃)。8、linux的內(nèi)存分配和多線程原理9、MYSQL中主鍵與唯一索引的區(qū)別主鍵:絕對(duì)不能有空值。唯一索引:可以有空值10、http與https的主要區(qū)別關(guān)鍵是S上。簡(jiǎn)而言之,https建立連接后要先把SSL的證書發(fā)下去,有了公鑰和私鑰,就可以解密了。11、http狀態(tài)碼及其含意200請(qǐng)求已成功,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回。301被請(qǐng)求的資源已永久移動(dòng)到新位置。302請(qǐng)求的資源現(xiàn)在臨時(shí)從不同的URI響應(yīng)請(qǐng)求。4001、語(yǔ)義有誤,當(dāng)前請(qǐng)求無(wú)法被服務(wù)器理解。2、請(qǐng)求參數(shù)有誤。401當(dāng)前請(qǐng)求需要用戶驗(yàn)證。403服務(wù)器已經(jīng)理解請(qǐng)求,但是拒絕執(zhí)行它。404請(qǐng)求失敗,請(qǐng)求所希望得到的資源未被在服務(wù)器上發(fā)現(xiàn)。500服務(wù)器遇到了一個(gè)未曾預(yù)料的狀況,無(wú)法完成對(duì)請(qǐng)求的處理,會(huì)在程序碼出錯(cuò)時(shí)出現(xiàn)。501服務(wù)器不支持當(dāng)前請(qǐng)求所需要的某個(gè)功能。無(wú)法識(shí)別請(qǐng)求的方法。502作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從上游服務(wù)器接收到無(wú)效的響應(yīng)。503由于臨時(shí)的服務(wù)器維護(hù)或者過(guò)載,服務(wù)器當(dāng)前無(wú)法處理請(qǐng)求。12、linux中怎么查看系統(tǒng)資源占用情況top、htop、free、uptime13、SQL注入的原理是什么?如何防止SQL注入原理:第一SQL本身有問(wèn)題(這個(gè)不是主要問(wèn)題)。第二你寫的SQL很有問(wèn)題(這是最主要的)防范:第一,絕對(duì)不要相信用戶輸入的任何東西。第二,預(yù)編譯。現(xiàn)在的框架一般都會(huì)有SQL過(guò)濾的。14、isset(null)isset(false)empty(null)empty(false)輸出PHP入門問(wèn)題,isset和empty的區(qū)別分別是false,true,true,true15、優(yōu)化MYSQL的方法第一,數(shù)據(jù)超過(guò)一定數(shù)量或者體積,請(qǐng)拆分表,垂直或者水平分(最有效果的優(yōu)化)第二,務(wù)必有自增主鍵。通過(guò)自增主鍵來(lái)查數(shù)據(jù)是最快的。第三,常用的查詢字段建立聯(lián)合索引,寫SQL一定要尊從最左原則,用到這個(gè)索引。第四,不要把邏輯運(yùn)算放到sql里。言外之意是,不要寫太復(fù)雜的SQL,你能寫復(fù)雜的SQL你肯定也能通過(guò)PHP實(shí)現(xiàn)。php面試寶典說(shuō)到php面試寶典,可能在一百個(gè)人看來(lái),就有一百個(gè)哈姆雷特。所以說(shuō),沒(méi)有絕對(duì)的寶典,只有相對(duì)的經(jīng)驗(yàn)。根據(jù)的總結(jié),這些經(jīng)驗(yàn)主要體現(xiàn)在以下三個(gè)方面。第一,專業(yè)技術(shù)不可少。畢竟公司招的是專業(yè)的php工程師,如果他不能為企業(yè)解決相關(guān)的技術(shù)問(wèn)題,是不可能得到這份工作的。在面試時(shí),技術(shù)方面的主考官很可能把自己遇到的實(shí)際問(wèn)題擺在應(yīng)聘者眼前,如果應(yīng)聘者回答得不能讓人滿意,很可能就止步于此了。假設(shè)你也要應(yīng)聘php工程師,沒(méi)有知識(shí)上的積累,很可能會(huì)導(dǎo)致應(yīng)聘失敗。程序員的職業(yè)發(fā)展規(guī)劃和分類第二,綜合素質(zhì)很重要。在php面試寶典里,這一條也是相當(dāng)重要的。所謂綜合素質(zhì),既包括應(yīng)聘者的事業(yè)心、進(jìn)取心,又包括他對(duì)工作的熱情、自律能力等內(nèi)容。試想,如果一個(gè)應(yīng)聘php工程師的人,除了在專業(yè)上的能力,其他一無(wú)是處,那么,主考官不會(huì)錄用他的。這是因?yàn)椋琾hp工程師也要與公司里的其他人和平共處,也要得到別人的支持,或者給予別人支持。第三,回答薪酬要討巧。很多php工程師在面對(duì)主考官時(shí),會(huì)被問(wèn)到預(yù)期的工資的問(wèn)題。這個(gè)問(wèn)題確實(shí)有點(diǎn)棘手,如果你要價(jià)高了,招聘單位不會(huì)錄用你,如果你要價(jià)低了,又不能體現(xiàn)出自己的價(jià)值,讓自己受了委屈。所以,在回答這一問(wèn)題時(shí),一定要從實(shí)際情況出發(fā),將行業(yè)內(nèi)盛行的工資水平作為參考,加上自己的預(yù)期,給主考官報(bào)一個(gè)在合理范疇內(nèi)的工資水準(zhǔn)。學(xué)習(xí)了php面試寶典,應(yīng)聘者還要注意,任何一份工作都有自己的特殊性,如果你對(duì)這份工作沒(méi)有必要的激情和動(dòng)力,就不要去爭(zhēng)奪它了。因?yàn)?,這樣既浪費(fèi)了你自己的時(shí)間和精力,也給主考官帶來(lái)了一定的困擾。php運(yùn)行機(jī)制PHP常見的運(yùn)行模式有2種,分別是php-fpm和php-cli。當(dāng)PHP選擇運(yùn)行在php-fpm模式下,所有的變量都是頁(yè)面級(jí)的,無(wú)論是全局變量還是類的靜態(tài)成員,都會(huì)在頁(yè)面執(zhí)行完畢后被清空。運(yùn)行在php-cli模式下可以實(shí)現(xiàn)程序常駐內(nèi)存,各種變量和數(shù)據(jù)庫(kù)連接都能長(zhǎng)久保存在內(nèi)存實(shí)現(xiàn)資源復(fù)用,性能可以得到很大的提升,php-cli雖然開發(fā)比較復(fù)雜,但是能夠獲取更高的性能,對(duì)開發(fā)者的要求比較高需要比較高的開發(fā)水平,比較常用的模式是結(jié)合swoole組件編寫cli框架,各種變量能保存在跨進(jìn)程的高性能共享內(nèi)存Table,可以開發(fā)出支持熱啟動(dòng)的php-cli可靠各類應(yīng)用系統(tǒng)。php-fpm在PHP5.3.3版本成為了官方正式組件(2010-07-22),它提供了穩(wěn)定可靠的進(jìn)程管理服務(wù),進(jìn)程不足時(shí)候可以智能擴(kuò)充數(shù)量,閑置時(shí)候可以自動(dòng)回收銷毀多余的進(jìn)程,同時(shí)它對(duì)程序的容錯(cuò)能力很強(qiáng)大運(yùn)行非常穩(wěn)定,可以應(yīng)付企業(yè)級(jí)的開發(fā)需求。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互聯(lián)網(wǎng)協(xié)議下進(jìn)行的用戶的輸入輸出,頁(yè)面級(jí)生命周期各種資源用完即釋放,不存在內(nèi)存泄漏的問(wèn)題。php-fpm也提供有一些常駐內(nèi)存的技術(shù)支持,例如PHP7.4引入的opcache.preload也能實(shí)現(xiàn)局部的PHP類和函數(shù)的常駐內(nèi)存,不過(guò)這個(gè)方法不夠靈活,和服務(wù)器配置捆綁的太死了。php-cli因?yàn)槟軐?shí)現(xiàn)各類資源的常駐內(nèi)存,所以可以資源復(fù)用,更高效完成多進(jìn)程編程和異步編程,可以開發(fā)出負(fù)載能力更高的應(yīng)用系統(tǒng)。但是相對(duì)php-fpm的簡(jiǎn)單編程開發(fā),開發(fā)者要注意很多的事項(xiàng)和需要做很多附加的控制器開發(fā),否則就無(wú)法實(shí)現(xiàn)期待中的高性能。首先開發(fā)者需要去實(shí)現(xiàn)可靠的進(jìn)程管理服務(wù),保證系統(tǒng)進(jìn)程遇到各類錯(cuò)誤退出運(yùn)行后能夠自動(dòng)創(chuàng)建新的進(jìn)程,只有這樣才能保證后續(xù)的服務(wù)請(qǐng)求有足夠空閑進(jìn)程可分配。每個(gè)業(yè)務(wù)代碼段都要做異常處理,讓進(jìn)程遇到非致命錯(cuò)誤時(shí)候不會(huì)退出,因?yàn)檫M(jìn)程重啟意味程序和各類資源需要再次加載,這個(gè)過(guò)程性能消耗不小,所以只有進(jìn)程穩(wěn)定運(yùn)行了常駐內(nèi)存才有意義。其次因?yàn)槌qv內(nèi)存,編寫的新的程序必須重啟服務(wù)才能生效,這一點(diǎn)習(xí)慣了fpm模式的開發(fā)者會(huì)感到比較陌生。另外開發(fā)者需要手工釋放內(nèi)存,否則系統(tǒng)長(zhǎng)時(shí)間運(yùn)行后會(huì)出現(xiàn)內(nèi)存泄露。同時(shí)在cli模式下,我們不能像fpm里直接用$_SERVER、$_POST、$

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論