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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論