- 相關(guān)推薦
多家互聯(lián)網(wǎng)公司PHP面試題
引導(dǎo)語:php面試。試題考察是免不了的,以下是小編整理的多家互聯(lián)網(wǎng)公司PHP面試題,歡迎參考閱讀!
一、速普軟件
速普軟件公司。公司規(guī)模8人左右,有自己的產(chǎn)品,做企業(yè)級OA。做一套php面試題,試題不是很難。面試題和情況大致如下:
1:檢測一個變量是否有設(shè)置的函數(shù)是否?是否為空的函數(shù)是?(2分)
2:echo(),print(),print_r()的區(qū)別(3分)
3:表單中 get與post提交方法的區(qū)別?
4:session與cookie的區(qū)別?
5:用PHP打印出前一天的時間格式是2015-8-10 22:21:21(2分)
6:能夠使HTML和PHP分離開使用的模板引擎(1分)
7:使用哪些工具進行版本控制?(1分)
8:如何實現(xiàn)字符串翻轉(zhuǎn)?(3分)
9:有一個網(wǎng)頁地址, 比如PHP開發(fā)資源網(wǎng)主頁: http://www.baidu.com,如何得到它的內(nèi)容?($1分)
10:在PHP中error_reporting這個函數(shù)有什么作用? (1分)
11:JS表單彈出對話框函數(shù)是?獲得輸入焦點函數(shù)是? (2分)
12:foo()和@foo()之間有什么區(qū)別?(1分)
13:GD庫是做什么用的? (1分)
14:寫一個函數(shù),能夠遍歷一個文件夾下的所有文件和子文件夾。
15:寫出 SQL語句的格式 : 插入 ,更新 ,刪除 (4分)
表名User Name Tel Content Date
張三 13333663366 大專畢業(yè) 2006-10-11
張三 13612312331 本科畢業(yè) 2006-10-15
張四 021-55665566 中專畢業(yè) 2006-10-15
(a) 有一新記錄(小王 13254748547 高中畢業(yè) 2007-05-06)請用SQL語句新增至表中
(b) 請用sql語句把張三的時間更新成為當(dāng)前系統(tǒng)時間
(c) 請寫出刪除名為張四的全部記錄
二、同城幫
之前隸屬于360公司,是360的一個分支,現(xiàn)在慢慢獨立出去,屬于創(chuàng)業(yè)性質(zhì)的公司,主要是O2O方面的,面試內(nèi)容如下:
1:說說項目(他比較感興趣360老兵那個項目,其他項目沒有看),問項目的具體內(nèi)容,遇到的挑戰(zhàn),具體解決辦法,緩存的使用,為什使用redis,為什么使用獨立文件服務(wù)器。
2:緩存,問了memcache與redis的區(qū)別,redis的優(yōu)勢之處。怎樣解決memcache命中率低的問題,問了在實際項目中memcache命中率。是否部署過redis服務(wù)器。
3:svn與git 的區(qū)別,讓說具體的工作流程,使用git 的好處,以及怎樣處理沖突,基本的命令寫了兩個。
4:數(shù)據(jù)庫
一:數(shù)據(jù)庫的存儲引擎,myisam與innodb的區(qū)別,說出除了這兩種外的其他存儲引擎。
二:int 與bigint的區(qū)別,實際使用的時候主鍵選擇哪個?int(10)與int(11)的區(qū)別,var_char與char的區(qū)別
三:數(shù)據(jù)庫設(shè)計,用戶表與登錄表分開的好處,
5:php部分
一:session與cookie的區(qū)別
二:分布式怎樣解決session共享問題(可以從數(shù)據(jù)庫,ccookie存session,nosql方面解決)
三:get與post的區(qū)別
四:php __autoload機制
6:計算機網(wǎng)絡(luò)
一:三次握手與四次揮手的過程(主要是畫圖),各個參數(shù)的含義
二:http與https的區(qū)別,https怎樣保準(zhǔn)安全(結(jié)合ssl)
7:數(shù)據(jù)結(jié)構(gòu)
一:鏈表的結(jié)構(gòu)體(線性和鏈?zhǔn)剑,插入一個元素的操作代碼(紙上寫)
二:排序部分,時間復(fù)雜度,寫出一個排序算法。
三:二分查找的思想,時間復(fù)雜度
8:開發(fā)環(huán)境,linux常用命令,apache與ngiax的區(qū)別,平常用的開發(fā)環(huán)境是win還是linux等
面試心得:技術(shù)面試大約50分鐘,比較累,,,,還有是問問住宿、交通,畢業(yè)、實習(xí)時間,到崗時間等,hr人不錯, 面試整體不難,都是常用到的東西,算法要隨手能寫。
三、新浪微博
一家網(wǎng)絡(luò)公司,以服務(wù)大中華地區(qū)與海外華人為己任。2012年11月新浪注冊用戶已突破4億。面試內(nèi)容做了一套卷子,大約6張(單面),試題大概如下:
1:為什么想加入新浪,對新浪的印象
2:未來的計劃、目標(biāo)、打算?
3:有沒有微博號,昵稱是什么,粉絲數(shù)多少?
4:填空:(主要寫結(jié)果)
一、判斷null的函數(shù)
二、判斷變量是否存在的函數(shù)
三、判斷是否為空的函數(shù)
5:php轉(zhuǎn)換json為數(shù):組的函數(shù)
6:php 得到前一天的日期,格式如下(2015-08-24 10:20)然后寫入到文件 /usr/test中
7:提取url,要求從"sina"中提取url部分(要求使用兩種方法)
8:連續(xù)子數(shù)組的最大和例如輸入數(shù)組為{1,-2,3,10,-4,7,2,5}最大的子數(shù)組{3,10,-4,7,2}和為18
9:寫出常見的linux命令功能:top、ps、mv、find、df、cat、chmod、chgrp、grep、wc
10:寫出linux查看80端口的命令
11:有一個ip日志文件每行一個ip,統(tǒng)計某一個ip出現(xiàn)的次數(shù)
12:數(shù)據(jù)庫設(shè)計,有一個發(fā)布文章的數(shù)據(jù)字段:文章id,文章標(biāo)題,發(fā)表人,類別id,子類別id,所屬地id,創(chuàng)建時間,狀態(tài)
問題:一:劃出數(shù)據(jù)庫設(shè)計圖(表之間的關(guān)系),表可以自己添加,說明這樣設(shè)計的目的,好處
二:寫出創(chuàng)建創(chuàng)建文章表的語句,說說選擇字段的依據(jù)。
三:寫出查找最新發(fā)表的10篇文章的sql語句,說說優(yōu)化的方法。
13:系統(tǒng)設(shè)計
場景:現(xiàn)在要做一個用戶日程提醒系統(tǒng),需求如下,可以記錄用戶每天的日程,代辦日程到了以后,以短信或者是郵箱的形式通知用戶,用戶可以查看歷史日程,可以管理自己的日程(增刪改查),用戶有好友,可以查看好友開放出來的日程,可以進行好友聊天。
要求:一:考慮并發(fā)性。
二:用戶量在千萬級別,日程數(shù)量在億,10億級別
三:保證安全、首頁家在流暢
四:使用緩存服務(wù)器
問題:一:你感覺這個系統(tǒng)的難點在什么地方
二:這個系統(tǒng)各個模塊之間的關(guān)系,
三:這個系統(tǒng)實施的具體細節(jié)(緩存,大數(shù)據(jù)方面)
四:系統(tǒng)的安全性怎樣保證
一面(技術(shù)面):
1:主要是關(guān)于這個系統(tǒng)的數(shù)據(jù)表設(shè)計
2:這個系統(tǒng)當(dāng)用戶比較多的時候可能反應(yīng)較慢,怎樣解決
回答:利用緩存來解決頻繁的數(shù)據(jù)庫查找,用戶的好友關(guān)系、好友的歷史日程,我的歷史日程可以緩存,他問當(dāng)好友關(guān)系發(fā)生變化的時候怎樣處理,一開始我說清除緩存,下次查詢直接查數(shù)據(jù)庫,他說這樣不好,這樣數(shù)據(jù)庫壓力瞬間變大,讓我再想想,我說可以清除緩存的后在查數(shù)據(jù)庫恢復(fù)緩存,他說不是最好的解決方法,最后他說可以先更新數(shù)據(jù)庫,然后根據(jù)更新的好友關(guān)系在更新緩存(少查了一次數(shù)據(jù)庫,其實很簡單)。
3:這個系統(tǒng)的首頁加載比較慢怎樣辦?
開始我說,采用頁面靜態(tài)化,他說首頁是動態(tài)加載,頁面靜態(tài)化沒有效果,反而會拖慢系統(tǒng),文件IO需要消耗性能,讓我想想還有什么辦法,我說緩存首頁數(shù)據(jù),但是要注意緩存更新時間。
4:登陸問題,慢慢的系統(tǒng)的登陸比較慢,你知道為什么嗎,怎樣解決
我說應(yīng)該是用戶量太大,登陸的SQL語句優(yōu)化不好,或者是沒有加索引,他說加上索引并且SQL優(yōu)化到最好,還是比較慢是什么問題,我說是用戶量實在太大了,超出了mysql的單表容量了,他問該怎么解決。我說可以水平拆分,緩解數(shù)據(jù)增長的壓力,他說什么是數(shù)據(jù)庫拆分,水平拆分和垂直拆分有什么區(qū)別我說垂直拆分解決表與表之間的IO競爭,不解決單表中數(shù)據(jù)量增長出現(xiàn)的壓力,把不向關(guān)的表放在其他的服務(wù)器上,水平拆分解決單表中數(shù)據(jù)量增長出現(xiàn)的壓力,不解決表與表之間的IO爭奪,感覺自己不是多懂,他說怎么拆分依據(jù)是什么(我對拆分只是了解)我說可以按照時間拆分,他說但是這樣的拆分沒有一點用,他說你再想想,我說我感覺可以,拆分之后單表數(shù)據(jù)變小了,查詢肯定快啊,他說你登錄的時候怎樣確定用戶在哪個表里面呢?我說在hash把用戶與分表的關(guān)系hash到一個表里面,他說不是最好的解決辦法,并且hash麻煩,需要確定那張表才能進行查找。。。他讓我再想想,我從存儲過程,數(shù)據(jù)庫緩存來說,最后他說不好使,他說你可以采用用戶名分表,用戶名(a-z)分26個表,登陸的時候一下就可以找到他在的那張表了。這個問題大約談了30分鐘,回答的不是多好。
5:第三方登錄問題
他問做過第三方登陸沒有,我說我自己嘗試過,利用qq做第三方登錄,主要調(diào)用的騰訊提供的的接口,他又問我第三方登陸的原理,奧師認(rèn)證方面的,原理,說說https的安全傳輸原理。
6:接口
他問我做過接口沒有,我說做過,他問接口怎樣判斷用戶登錄,我說是生成token,他問token的生成原理,token的安全怎樣解決,token被劫持了該怎樣半,有什么好的辦法。token被劫持我不知道該怎么處理,這個可以查一查,反正當(dāng)時我沒想到好辦法,我從token的生成規(guī)則,過期時間,添加令牌方面回答的,他說還可以。
二面:(技術(shù)、項目面試)
1:問我為什么想加入新浪微博
2:說一下項目,他問360抗戰(zhàn)老兵那個,他訪問這個網(wǎng)站,問了系統(tǒng)的測試,開發(fā)細節(jié),緩存那塊問題,問了mc與redis的區(qū)別,內(nèi)存管理的不同
3:訪問了我的個人網(wǎng)站,說可以下網(wǎng)站的架構(gòu)和部署
4:問我想找什么樣的工作,我說想找網(wǎng)站后臺,或者是app接口開發(fā)的工作
5:問我最有沒有學(xué)習(xí)新的東西,想學(xué)什么新東西,我說可以看看nodjs 想關(guān)注php7
總結(jié):一面技術(shù)面大約60分鐘,主要問了數(shù)據(jù)庫方面的,感覺自己回答的不是很好,二面也是技術(shù)面,主要是問項目(360老兵那個,大家對這個項目比較敏感),面試到12:30左右。整體感覺還行,問的都是數(shù)據(jù)庫方面的優(yōu)化,表拆分,大數(shù)據(jù)的處理方法等等。最后讓我第二天等結(jié)果,第二天hr打電話說面試通過,說了實習(xí)的事,周一上班,周二辦理手續(xù)
四、美麗說
國內(nèi)最大的女性快時尚電子商務(wù)平臺,致力于為年輕時尚愛美的女性用戶提供最流行的時尚購物體驗,擁有超過1億的女性注冊,面試內(nèi)容做了一套卷子,試題如下:
1:mysql的索引是那種數(shù)據(jù)結(jié)構(gòu),為什么使用這種數(shù)據(jù)結(jié)構(gòu)。
2:設(shè)計一個數(shù)據(jù)表,用來存儲url信息,此表會經(jīng)常發(fā)生插入刪除操作,應(yīng)用場景是查找某個url是否存在,請寫出表結(jié)構(gòu),并加說明。
3:比較單詞a 和 b判斷b單詞的字母是否都在a中。
4:寫一個timer類,用來統(tǒng)計應(yīng)用程序的運行時間,并寫出調(diào)用方法。
5:session與cookie的區(qū)別,說明禁用cookie后 session還能不能運行
6:新浪微博一年產(chǎn)生的數(shù)據(jù)量是多少,應(yīng)該怎么存儲這些數(shù)據(jù)。
7:狀態(tài)嗎:204,304,404的含義,
8:介紹你了解的開源項目
一面(技術(shù)面):
1:介紹php的魔術(shù)方法
2:索引的最左原則
3:數(shù)據(jù)庫sql的優(yōu)化,哪些sql語句執(zhí)行會忽略索引。
4:策略問題: 4個人過橋,a要1分鐘, b要2分鐘,c 要5分鐘,d要10分鐘,兩人同時過橋,過橋速度以慢的為準(zhǔn),一人拿手電,過完橋后一個人吧手電送回來,問最快多長時間過完橋。
二面(技術(shù)面,問題):
1:說說項目,360老兵那個。
2:瀏覽器輸入url到頁面呈現(xiàn),經(jīng)過的過程,
3:mc與redis的區(qū)別,內(nèi)存管理方面。
三面(hr面):
hr是個漂亮的妹子,聊得很開心,主要涉及工作打算,生活住宿方面的,大學(xué)學(xué)習(xí)經(jīng)歷,是否了解美麗說這個公司等等。最后讓回去等通知。
總結(jié):美麗說,公司挺大的,一面感覺還是數(shù)據(jù)庫方面有點吃力,主要是數(shù)據(jù)庫底層方面的討論不是多好。關(guān)于策略類型的問題,一般要不是你見過,基本上打不出來,但是不能說自己不會,你應(yīng)該給出自己的見解,即使不完全正確。最后回去等通知,說是還有一個hr今天不在,如果覺得可以26號會打電話通知我來復(fù)試。。。最后還真給我打電話讓我去復(fù)試,時間是27號。
五、360金融
筆試題:
1:寫出PHP中以 array_ 開頭的函數(shù),并說明用法,至少寫6個
2:mysql常用的存儲引擎,說出3個以上,并寫出每個應(yīng)用場景,優(yōu)缺點
3:redis與MC的區(qū)別,寫出其中一個的內(nèi)存管理機制
4:查看 Apache 80端口的命令
5:用C語言實現(xiàn)php中的base64編碼函數(shù)
6:用PHP寫出快速排序
面試問:
1:微博中reids的應(yīng)用場景,redis的內(nèi)存分配機制,為什么使用redis不適用MC,mc與redis的并發(fā)哪個較高
2:array_map的使用場景,array_merge(),合并數(shù)組之后的鍵名變換情況
3:php幾個編碼函數(shù)區(qū)別(json_encode, http_build_query, urlencode等區(qū)別)
4:正則表達式中 . * + / 的含義
5:給定一個數(shù)字,2進制轉(zhuǎn)換成16進制
六、美*網(wǎng)
筆試題:
1:打印前一天的日期時間格式:2016.03.18 10:15:12,打印上個月的最后一天的日期
2:說出 empty(),isset() array_key_exits();的區(qū)別
3:瀏覽器地址欄輸入 www.baidu.com 以后發(fā)生的事情,和用到的協(xié)議
4:從連接中()提取出url
5:PHP發(fā)送強求的方法,有什么不同點
6:寫出10個mysql 的字段類型,說明使用場景
7:一個數(shù)據(jù)表,70個字段,10G的數(shù)據(jù)量,每天50w的數(shù)據(jù)增量,說出有哪些優(yōu)化的方法
8:寫一個定時任務(wù),每天2點到8點,每隔10分鐘調(diào)用一次PHP腳本 /data/www/test.php
9:寫出查看php-fpm進程數(shù)的linux命令
10:寫一個函數(shù),判斷重一副撲克牌中隨機抽出的5張牌是不是順子,順子的定義:5張牌是連續(xù)的牌比如 23456
其中2-10是原數(shù)字,A是1,J是11,Q是12,k是13,小王大王是任意數(shù)。
七、瓜子二手車
一面(技術(shù)面):
1、介紹一個寫過的項目,畫出架構(gòu)和技術(shù)點
2、coding 楊輝三角,求m行n列的值
3、使用正則表達式判斷ip的合法性,要考慮全面
4、redis和MC的內(nèi)存管理機制
5、redis中數(shù)據(jù)存儲方式,各種數(shù)據(jù)結(jié)構(gòu)應(yīng)用的場景,redis做消息隊列與專業(yè)的消息隊列有什么區(qū)別和優(yōu)勢
5、最左原則的原理和sql的優(yōu)化機制,什么時候不會用到索引。
6、分條件查詢的優(yōu)化和系統(tǒng)設(shè)計與架構(gòu)
7、你最近學(xué)習(xí)的新技術(shù),你對架構(gòu)師的理解,你對GO語言的理解,速度快嗎?快在哪?
二面(技術(shù)面):
8、一條sql語句的優(yōu)化機制,大數(shù)據(jù)分頁處理
9、矩陣的規(guī)律遍歷,寫出遍歷的代碼
10、上司與你的關(guān)系,怎樣保證工作與生活的協(xié)調(diào)等等
11、抓取 a.html頁面,把含有a便簽中的href全部抓取,如果url含有 guazi.com就把該條url標(biāo)題上guazi,然后再抓取該鏈接對應(yīng)的頁面,這樣不斷的遵化你抓取,你怎樣解決死循環(huán)問題和頁面抓取效率問題。
八、百度外賣
一面(技術(shù)面):
1、說項目,介紹知識點,畫結(jié)構(gòu)圖
2、數(shù)據(jù)庫最左原則含義用法
3、一個日志文件,打印某一時刻的并發(fā)數(shù)(記錄日志的條數(shù))
4、一個數(shù)組按照固定的值排序(按照id排序)
$a = [
['abc'] => ['id' => 1, 'value' => 233],
['bcd'] => ['id' => 2, 'value' => 463]
]
二面(技術(shù)面):
1、說說項目
2、數(shù)據(jù)庫最左原則
3、數(shù)據(jù)庫索引建立的原則
4、數(shù)據(jù)庫引擎,說出特點
5、redis和MC的優(yōu)缺點,都在什么場景下使用
6、打印日志文件中,出現(xiàn)最多的前100個IP
7、說出linux中常用的命令
8、php 和其他語言不同的地方,PHP中弱類型的實現(xiàn)
9、C語言中結(jié)構(gòu)體和共用體的區(qū)別,每個占用做少內(nèi)存(二者已給出)
10、有沒有自己寫的一些作品,或者開源的東西
11、系統(tǒng)設(shè)計:百度外賣活動中的秒殺怎么設(shè)計,注意點是什么
三面(技術(shù)面):
1、介紹做的項目,畫出你做的一個模塊的流程和開發(fā)關(guān)鍵點
2、有沒有學(xué)習(xí)新的東西,比如新的技術(shù),語言
3、GO 語言看過嗎,有什么優(yōu)點,用在什么地方合適
4、為什么選擇百度外賣
5、為什么不愿意留在原公司,離職的原因在哪
四面(技術(shù)面):
1、介紹一個最深刻的項目,說出技術(shù)點
2、coding:一個數(shù)組 0 - n-1,已經(jīng)排好序,打印出滿足 a[i]+a[j] = c 的所有i和j,說出時間復(fù)雜度
3、以后有什么打算,學(xué)習(xí)的目標(biāo)或者是自己的規(guī)劃目標(biāo)
4、收到的offer都有哪些,為什么沒有選擇這些公司
5、原來后臺項目有多少個人,每一個人的技術(shù)實力在哪
【多家互聯(lián)網(wǎng)公司PHP面試題】相關(guān)文章:
php面試題05-18
PHP經(jīng)典面試題07-28
精選php面試題及答案06-01
最新PHP面試題05-27
PHP面試題及答案06-27
PHP的面試題集07-06
PHP經(jīng)典面試題集錦01-12
PHP面試題集04-21
php應(yīng)聘面試題05-07