国产精品亚洲综合久久系列,一本大道香蕉青青久久,播放高清的播放器,国产在线观看无码不卡

蜜蜂職場(chǎng)文庫 > 面試技巧 >

php面試題及答案

時(shí)間: 小龍 面試技巧

  PHP面試者在面試前的準(zhǔn)備很重要,以下是小編幫你們整理的php面試題及答案,一起來學(xué)習(xí)啦。

  php面試題及答案(一)

  1. echo count(“abcd”);輸出多少?

  int count(mixed var)

  返回單元數(shù)目,通常是一個(gè)array,任何其他類型都只有一個(gè)單元,有一個(gè)例外, 如果var是null結(jié)果是0

  2.

  $a=$b=$c=0;

  $a=$b && $c;

  運(yùn)行以上代碼后$a $b $c 分別是?

  $a=false

  $c=0

  $b=0

  3. PHP打印出前一天的時(shí)間,格式是-12-29 22:21:21

  echo date('Y-m-d H:i:s',strtotime('-1 day'));

  strtotime 將任何英文文本的日期時(shí)間解析成時(shí)間戳

  4. 請(qǐng)用php的heredoc語法格式輸出:hello world!

  echo <<

  hello world!

  EOT;

  5. $string = "abcdefg",那么$string{4}的值是?

  $string{4}=e

  因?yàn)镻HP是弱類型語言,可以將字符串“視為數(shù)組”,當(dāng)做字符集合看待,字符串中的字符可以在字符串之后用花括號(hào)指定所要字符從零開始的偏移量來訪問和修改。

  6. 簡(jiǎn)述echo(),print(),print_r()的區(qū)別。

  echo,print是PHP語言結(jié)構(gòu), print_r是函數(shù),語言結(jié)構(gòu)沒有返回值,函數(shù)可以有返回值(即便沒有用)

  print只能打印出簡(jiǎn)單類型變量的值(如int,string)

  print_r可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象)

  php面試題及答案(二)

  1.用PHP寫出顯示客戶端IP與服務(wù)器IP的代碼。

  客戶端: $_SERVER[REMOTE_ADDR]

  服務(wù)器: $_SERVER[SERVER_ADDR]

  2、用正則表達(dá)式判斷$a是否是一個(gè)以半角逗號(hào)分隔的多個(gè)手機(jī)號(hào)碼組成的字符串,是輸出yes

  $phone = '13725439919,18588421409,18817006902';

  $pattern = '/^(1[34568]\d{9},)+(1[34568]\d{9})?$/';

  if(preg_match_all($pattern,$phone,$out)){

  echo 'yes';

  }else{

  echo 'no';

  }

  echo '

  ';

  print_r($out);

  3、解釋MVC,介紹幾種目前比較流行的MVC框架

  由模型(model),視圖(view),控制器(controller)完成的應(yīng)用程序

  MVC模式的目的就是實(shí)現(xiàn)Web系統(tǒng)的功能分工,它強(qiáng)制性地把應(yīng)用程序的輸入、處理和輸出分開,可以各自處理自己的任務(wù),是一種分層的概念。Model層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,View層用于與用戶的交互,Controller層是Model和View之間溝通的橋梁。

  Symfony:是為開發(fā)大型web準(zhǔn)備的,學(xué)習(xí)曲線比較長(zhǎng)。

  Laravel:簡(jiǎn)潔、優(yōu)雅。

  php面試題及答案(三)

  一、描述一下大流量高并發(fā)網(wǎng)站的解決方案

  1) LVS或nginx負(fù)載均衡器,通過負(fù)載均衡把壓力分擔(dān)到多臺(tái)服務(wù)器.

  2) squid緩存或nginx web cache緩存

  3) web 服務(wù)器選型(nginx代替apache)

  4) 頁面靜態(tài)化(smarty或框架),數(shù)據(jù)緩存(memcache Redis)

  5) memcache

  6) sql語句一定要注意索引使用

  7) 主從數(shù)據(jù)庫

  8) 分庫分表或分區(qū)

  主要從以下幾個(gè)方面回答:

  1、硬件

  1) 垂直拓展:買更好的服務(wù)器。一般不建議這么做,因?yàn)閱蝹€(gè)服務(wù)器都有上限

  2) 水平拓展:多買幾臺(tái)服務(wù)器,利用負(fù)載均衡器(LVS、F5),將壓力分擔(dān)到不同服務(wù)器上。

  2、 數(shù)據(jù)庫

  a) 數(shù)據(jù)庫優(yōu)化 : 1、分表和分區(qū) 2、主從數(shù)據(jù)庫

  b) 數(shù)據(jù)庫的選型 :可以考慮將apache換成nginx

  c) SQl語句優(yōu)化

  3、 緩存

  a) 數(shù)據(jù)緩存 :使用memcache

  B) 頁面靜態(tài)化 :框架的頁面靜態(tài)化、smarty

  C) 使用CDN

  參考答案:

  1、硬件

  購買更好的服務(wù)器,這種是縱向擴(kuò)展,但是不太推薦。購買更多的服務(wù)器,利用LVS或者F5搭建服務(wù)器集群。從而提高整個(gè)網(wǎng)站的計(jì)算速度。

  2、web服務(wù)器

  由于Apache的并發(fā)處理能力有限,所以可以考慮使用Nginx。

  3、數(shù)據(jù)庫

  Mysql要結(jié)合NoSQL使用,由于單個(gè)數(shù)據(jù)庫能力有限,所以要搭建主從數(shù)據(jù)庫。

  4、緩存

  a) 為了減小數(shù)據(jù)庫的壓力,考慮使用Memcache或Redis做緩存。 b) 把網(wǎng)站的絕大多數(shù)頁面進(jìn)行頁面靜態(tài)化。(phpcms)

  c) 把靜態(tài)資源放到CDN上。

  5、禁止外部的盜鏈

  6、控制大文件的下載

  二、如何防SQL注入

  //表單盡量用post提交,核心用戶驗(yàn)證都走post,避開get

  1、 表單盡量用post,表單判斷控制走get,因?yàn)間et比post速度快

  2、 $_SERVER[HTTP_REFERER]判斷提交者的源頭,只能本站提交。

  3、 使用addslashes轉(zhuǎn)義用戶提交的數(shù)據(jù)

  4、 服務(wù)器本身的安全

  5、 數(shù)據(jù)庫使用PDO,因?yàn)镻DO有預(yù)處理

  三、如何實(shí)現(xiàn)多臺(tái)web服務(wù)器共享session數(shù)據(jù)

  1、改變session的域 ,比如域名是www.baidu.com

  域就應(yīng)該是.baidu.com

  2、使用數(shù)據(jù)庫或者memcache存儲(chǔ)session數(shù)據(jù)

49857