“PHP學習網” 公眾號會每天分享一些面試題,正在找工作的小夥伴們可以來看看哦。
一、使用PHP語言自定義一個函式,此函式作用是將一個句子按單詞反序。例如”One World One Dream”,反序後變為 “Dream One World One”。
function get_rev($str){
$arr=explode(‘ ’,$str);
for($i=count($arr)-1;$i>=0;$i--){
$res.=$arr[$i].’ ’;
}
return $res;
}
二、兩條查詢語句,一條是Select * from table1 where id>10 and id<100
一條是Select * from table2 where id>200 and id<500
請嘗試只寫一條SQL語句,完成相應的查詢任務。
Select * from table1 as t1,table2 as t2 where t1.id>10 and t1.id<100 and t2.id>200 and t2.id<500;
三:有兩個檔案,一大一小,其中之一有8,000,000個電話號碼,另一個檔案有500個電話號碼,請說明一種方法找出重複的電話號碼。
1、讀取檔案裡的內容,以某字元作為分割標誌(使用explode()函式),分隔800000的字串,然後用500個電話號碼作為值,作為判斷條件(使用in_array()函式)判斷,是否存在於其中,存在則拿出
2、要是效率的話,使用hash演算法
3、array_intersect()效果更佳
四、有一夥海盜,俘虜了三個漁民A、B、C。海盜船長決定殺他們之前給他們一次機會。他當漁民的面拿出三頂黑帽子,兩頂白帽子,然後給這三個可憐人各戴一頂,分別問他們頭上帽子的顏色。
每個漁民只能看到另外兩個漁民帽子的顏色,看不到自己的,而且他們不能通訊,不能討論,如果猜對了,放一條生路,否則立即處死。
船長先問漁民A,結果漁民A猜錯了,被殺死了。船長又問漁民B,結果還是猜錯了,同樣被殺死了。海盜船長再問漁民C時,結果漁民C猜對被釋放了。
考慮到船長及A、B、C都很聰明,問為什麼漁民C一定能猜中?
答案:偶不會,會的留言說一下答案吧!
五、請用正規表示式寫一個函式,驗證電子郵件的格式是否正確。
function get_url($email){
if(preg_match('/^([0-9a-zA-Z_]+)*\w+@(\w)+\.com|\.cn$/ims',$email)){
echo 2;
}
}
六、列舉流行的Ajax框架?(每個1分)說明Ajax實現原理是什麼及Json在Ajax中起什麼作用?
jQuery extjs
原理:透過XMLHttpRequest建立物件,根據客戶端的請求,傳遞到伺服器端進行資料處理,然後接收伺服器端返回來的資料
以json格式組裝從伺服器端返回來的資料
七、我們常可以看到,一些商場買200元的商品可以返100元優惠券(可在本商場代替現金)。請問實際上商品的折扣是多少?
如果買完200元的商品 不用優惠券 折扣沒有,多了1張100元優惠券
如果買完200員的商品 使用優惠券(將這個100員優惠券又去買完了商品) 相當於200元的現金 買來了 300員的商品 200/300=66%
八、我們希望開發一款撲克遊戲,請給出一套洗牌演算法,公平的洗牌並將洗好的牌儲存在一個整形陣列裡。
$a=54;
for($i=1;$i<=$a;$i++){
$str[$i]=$i;
}
for($i=1;$i<=$a;$i++){
$t=rand(0,$a-$i);
$s[$i]=$str[$t];
unset($str[$t]);
$str=array_values($str);
}
echo '<pre>';
print_r($s);
九、我們希望開發一個門戶系統,資料儲存採用MySQL,使用者數量為1000萬,預計文章總數為10億,日更新量至少為10萬,日訪問量為5000萬,對資料庫的讀寫操作比例超過10:1,你如何設計該系統,以確保其高效,穩定的執行?
(提示:可以從資料庫設計,系統框架及網路架構方面進行描述,自由發揮)
網路
DNS輪循
Nginx主 從伺服器(2臺以上 用於負載均衡)
叢集伺服器->PHP分發器(根據隨機數對應ip連線資料庫)
資料庫叢集(多臺以上)
資料庫(2臺以上)互為主從
最後各位可以掃下方二維碼關注我公眾號,目前我正在更新基礎面試題,之後會更新中高階、redis、liunx面試題
本作品採用《CC 協議》,轉載必須註明作者和本文連結