近期面試總結(PHP後端開發工程師)(部分筆試題)

1.字符串"0"在PHP和js中轉換爲布爾值是false仍是truephp

  php:false;  php 弱語言 '0'和0同樣;

  js:true;字符串除了空字符串('')其餘都是true(包括' ' 這種中間有空格的);
2.   echoprint_rprint,var_dump 區別

        echo:語句結構;

        print:是函數,有返回值

        print_r:能打印數組,對象

        var_dump:能打印對象數組,而且帶數據類型

 

3.如何獲取客戶端的IP(要求取得一個int)和服務器端的IP的代碼html

      

 $ip = $_SERVER["REMOTE_ADDR"];  或者:getenv('REMOTE_ADDR'); 

        轉化爲int  $intIP =  ip2long($ip);

       $_SERVER["SERVER_ADDR"];

       gethostbyname('www.baidu.com');

 

4.  mysql聯合索引index_a_b_c(a,b,c) charset=utf8,a int(10),b varchar(10),c tinyint(1),問條件where a = 5 and c = 1用到的索引長度。mysql

索引長度:4+1 = 5  (用到a,c)nginx

where a=5 and b = "hahah"; 面試

索引長度:4+10*3+2 = 36 (用到a,b)正則表達式

5.json和jsonp的區別,何時用。redis

jsonp 跨域請求算法

6.寫出點擊一個div出現相應的序號的jssql

7.session和cookie的區別和聯繫數據庫

8.PHP實現遍歷出文件夾和他下面子文件的代碼

1.  <?php

2.           $dir = '/Users/zhaoning/Desktop/算法';

3.          

4.           function getAllFile($dir){

5.                   $allFileArr = array();

6.                   if (is_dir($dir)) {

7.                            $res = opendir($dir);

8.                            while ($row = readdir($res)) {

9.                                     if ($row == '.' || $row == '..') {

10.                                             continue;

11.                                    }

12.                                    if (is_file($dir.'/'.$row)) {

13.                                             $allFileArr[] = $row;

14.                                    }else if (is_dir($dir.'/'.$row)) {

15.                                             $allFileArr[$row] = getAllFile($dir.'/'.$row);

16.                                    }

17.                           }

18.                           closedir($res);

19.                  }

20.                  return $allFileArr;

21.          }

22.          var_dump(getAllFile($dir));

23. ?>

9.寫出匹配html標籤的而不匹配div span img的正則表達式

10.寫出下面正則表達式的含義

$  ^   [^]  ?    ?:   

11.PHP中this和self的區別

        this:對象

        self:類

12.如何防止SQL注入,XSS攻擊和CSRF攻擊

        SQL注入:mysqli_real_escape_string()轉義關鍵字符;

        XSS攻擊:alert把一些cookie信息打印出來;過濾掉<>等關鍵字符串

        CSRF攻擊:跨站攻擊。防止:token,驗證碼

13.Linux的命令:查找出文件名後綴是.txt的,內容包含delete的文件,並刪除

1.  find / -name "*.txt" | xargs -n1 -I(這是i) 'xxx' grep -l(這是L)  'delete' 'xxx' | xargs -n1 -I 'zzz' rm -f 'zzz'

14.PHP解決多進程讀寫一個文件的方法

1.  function putFile($file,$mode="w"){

2.           $file = fopen($file,$mode);

3.           if(flock($file,LOCK_EX)){

4.                   fwrite($file,'write a word');

5.                   flock($file,LOCK_UN);

6.           }else{

7.                   echo "沒法訪問";

8.           }

9.           fclose($file);

10. }

15.數據庫表的引擎有哪幾種?區別和場景

        MyISAM:多用於select

        Innodb:事務

        memory:內存中,存儲快

        merge:用於日誌和數據倉庫

        archive:用於日誌,只有select和insert,不支持索引。

16.nginx和PHP的工做原理

17.ES鏈接PHP的擴展叫什麼名字

        elasticsearch 

18.調用接口須要什麼,簽名怎麼生成的,登錄接口的實現

        簽名:(  token + 時間戳  )  加密  =  sign  

19.接口返回包含哪幾部分。

1.  {

2.      code:

3.      msg:

4.      data:{}

5.  }

1.不知道什麼的英文

2.PHP錯誤種類.

3.var_dump(0123==123);var_dump('0123'==123);  false true

4.36我的,6個賽道,沒有秒錶,比賽多少次可以得出前三名?

5.正方形四個角有四個蟲子,蟲子沿邊走,問:蟲子相遇(兩個碰頭)的機率是多少?

6.A去買水果3.5斤共14元,給老闆B  20 元 ,B沒零錢,找隔壁C換20元,回來後找A  6元,C發現這個錢是假的,找B,B又給C 20 元。問:B一共虧了多少錢。

7.快排

8.同一個ip,10分鐘能只能訪問5次

9.設計微博粉絲互粉,用戶1億。

問答:

http協議包含幾部分。

接口是怎麼實現的。

token 是怎麼生成的。

你知道哪些加密。

如何防止http包的數據篡改。好比說轉帳10塊,http包被劫,改爲100塊了。

 

針對有項目經驗的面試梳理:

1.自我介紹。

在哪工做,多長時間。作了什麼東西,項目背景,用到的技術,負責什麼工做。

 

答案:以前在滴滴打車工做,工做半年多。參加的項目有穀雨移動和司機幫。穀雨移動是(移動端)爲汽車租賃公司提供管理旗下快車的軟件。主要用的PHP+redis+ES。我主要負責服務分和各項報表的查詢和彙總。司機幫主要是面向快車司機的,司機可以查看本身的流水和服務分,服務時長等各項數據。我主要負責服務分的排名。

問:redis起什麼做用?

減小訪問es的次數

懶加載(訪問redis沒有數據,而後去查ES,把結果導入數據redis裏面)有什麼弊端?

數據不一樣步的問題。

怎麼解決數據不一樣步?

1.把懶加載換成定時跑數據。

2.從ES裏面讀取近期是否有數據變化,若是有重新讀取ES。沒有的話在還用原來的redis裏面的數據。

2.apache和nginx的區別

工做模式:

apache 有兩種模式perfork,worker模式

perfork:

worker:

nginx的epoll和select:

epoll:模式單線程異步非阻塞。

select:選擇性的

 

3.Innodb和My ISAM的區別

MyISAM:

支持全文索引,

不支持事務。

存儲結構:三個文件,一個數據文件,一個索引文件,一個表文件。

表級別的鎖。

Innodb:

不支持全文索引,

支持事務。

存儲結構:全部表同一個文件。

行級別的鎖。

4.hash索引和b+tree索引的區別

相關文章
相關標籤/搜索