无码人妻一区二区三区免费不卡_日韩AV无码综合久久五月_国产成人aⅴ片在线观看_欧美成人片高清在线观看

蜜蜂職場文庫 > 面試技巧 >

php常見面試題

時間: 小龍 面試技巧

  php面試中,面試前必須做好準(zhǔn)備,提前對面試題目有所了解,以下是小編為大家整理的php常見面試題,希望可以幫到大家。

  php常見面試題一

  1、表單提交get和post有何區(qū)別?

  答:get的方式是把數(shù)據(jù)在地址欄中發(fā)送,get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

  2、用PHP打印出前一天的時間格式是2006-5-10 22:21:21

  echo date("Y-m-d H:i:s",time()-(3600*24));或echo date("Y-m-d H:i:s",strtotime("-1 day"));

  3、php中include和require的區(qū)別?

  這兩種結(jié)構(gòu)除了在如何處理失敗之外完全一樣。include() 產(chǎn)生一個警告而 require() 則導(dǎo)致一個致命錯誤。換句話說,如果你想在遇到丟失文件時停止處理頁面就用 require()。include() 就不是這樣,腳本會繼續(xù)運行。

  4、echo(),print(),print_r()的區(qū)別

  echo可以接多個參數(shù),print只能接一個參數(shù),它們都是PHP的語言結(jié)構(gòu),print_r是遞規(guī)打印,用來打印數(shù)組或?qū)ο?/p>

  5、能夠使HTML和PHP分離開使用的模板

  smarty,phplib,SmartTemplate

  6、你如何理解MVC模式?

  首先說一下框架,框架:就是別人把一些底層,常用操作.比如數(shù)據(jù)操作(增,刪,改,查)寫好.你來直接用.其它的功能要自己來做。

  MVC:設(shè)計模式,M模型,V顯示,C控制.現(xiàn)在許多框架都是基于MVC來做的把邏輯和顯示分開.比如你要換頁面,只需要改V里面的東西并不需要再去變動程序(詳細(xì)的東西可以上網(wǎng)上!查一下)

  7、如何實現(xiàn)PHP、JSP交互?

  PHP提供了支持JAVA的類庫文件,或者通過HTTP協(xié)議來交互數(shù)據(jù)

  8、使用哪些工具進行版本控制?

  VSS,CVS,SVN

  9、如何實現(xiàn)字符串翻轉(zhuǎn)?

  不考慮中英文混合,不是最優(yōu)算法,不用php庫函數(shù)翻轉(zhuǎn)字符串:

  function str_to_reverse( $str ){

  for($length=0;$str[$length]!=null;$length++){;}

  $strlength = $length-1;

  unset($length);

  for($start=0,$end=$strlength;$start<$end;$start++,$end--){

  $temp = $str[$start];

  $str[$start] = $str[$end];

  $str[$end] = $temp;

  }

  unset($temp,$start,$end,$strlength);

  return $str;

  }

  10、優(yōu)化MYSQL數(shù)據(jù)庫的方法。

  1) 將where中用的比較頻繁的字段建立索引,聯(lián)合索引。

  2) 保證單表數(shù)據(jù)不超過200W,適時分割表。

  3) 避免使用長連接。

  4) 修改my.cnf里面的各項參數(shù),比如最大連接數(shù),查詢緩存等。根據(jù)你的服務(wù)器內(nèi)存來最大化調(diào)節(jié)那些配置參數(shù)。

  5) 針對需求,使用正確的表引擎,是myisam或是innodb。

  php常見面試題二

  1、PHP/MySQL編程

  1) 某內(nèi)容管理系統(tǒng)中,表message有如下字段

  id 文章id

  title 文章標(biāo)題

  content 文章內(nèi)容

  category_id 文章分類id

  hits 點擊量

  創(chuàng)建上表,寫出MySQL語句

  2)同樣上述內(nèi)容管理系統(tǒng):表comment記錄用戶回復(fù)內(nèi)容,字段如下

  comment_id 回復(fù)id

  id 文章id,關(guān)聯(lián)message表中的id

  comment_content 回復(fù)內(nèi)容

  現(xiàn)通過查詢數(shù)據(jù)庫需要得到以下格式的文章標(biāo)題列表,并按照回復(fù)數(shù)量排序,回復(fù)最高的排在最前面

  文章id 文章標(biāo)題 點擊量 回復(fù)數(shù)量

  用一個SQL語句完成上述查詢,如果文章沒有回復(fù)則回復(fù)數(shù)量顯示為0

  3) 上述內(nèi)容管理系統(tǒng),表category保存分類信息,字段如下

  category_id int(4) not null auto_increment;

  categroy_name varchar(40) not null;

  用戶輸入文章時,通過選擇下拉菜單選定文章分類

  3、實現(xiàn)中文字串截取無亂碼的方法。

  這個首先要考慮字符集的問題,UTF-8下一個漢字占3字節(jié),GBK下一個漢字占2字節(jié).可以自己寫個函數(shù)來處理,別人也寫了很多,當(dāng)然也可以開啟mbstring擴展庫,使用里面的mb_substr()等函數(shù)來截取。當(dāng)截取字符出現(xiàn)亂碼時,是因為漢字被截斷了,可以再字符串尾部連上一個chr(0)

  var $empty = '';

  var $null = NULL;

  var $bool = FALSE;

  var $notSet;

  var $array = array();

  4,Http 和Https的區(qū)別

  第一:http是超文本傳輸協(xié)議,信息是明文傳輸,https是具有安全性的ssl加密傳輸協(xié)議

  第二:http和https使用的是完全不同的連接方式,端口也不一樣,前者80 或者443 第三:http連接很簡單,是無狀態(tài)的。https協(xié)議是由ssl+http協(xié)議構(gòu)建的可進行加密傳輸,身份認(rèn)證的網(wǎng)絡(luò)協(xié)議。

  5.什么方法來加快頁面的加載速度

  01,用到服務(wù)器資源時在打開,不用時,立即關(guān)閉服務(wù)器資源。

  02,數(shù)據(jù)庫添加索引

  03,頁面可生成靜態(tài)

  04,圖片等大文件單獨放在一個服務(wù)器

  05,能不查詢數(shù)據(jù)庫的盡量不去數(shù)據(jù)取數(shù)據(jù),可以放在緩存中。

  6.表單中 get與post提交方法的區(qū)別?

  答:get是發(fā)送請求HTTP協(xié)議通過url參數(shù)傳遞進行接收,而post是實體數(shù)據(jù),可以通過表單提交大量信息.

  7.echo ,print,print_r 的區(qū)別:

  echo 是php語句,無返回值。

  print,print_r是函數(shù),有返回值。

  print() 只能打印出簡單類型變量的值(如int,string) print_r() 可以打印出復(fù)雜類型變量的值(如數(shù)組,對象) echo 輸出一個或者多個字符串

  8.session與cookie區(qū)別

  session與cookie相同:跨頁面、不跨用戶

  session與cookie不相同:

  1、session可以存儲任意類型的數(shù)據(jù),但cookie只能存儲字符串

  2、cookie產(chǎn)生在服務(wù)器端、存儲在客戶端

  session產(chǎn)生在服務(wù)器端、存儲在服務(wù)器端

  php常見面試題三

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

  echo $_SERVER['REMOTE_ADDR'] //客戶端ip

  echo $_SERVER['SERVER_ADDR'] //服務(wù)器端ip

  2、apache+mysql+php實現(xiàn)最大負(fù)載的方法

  1) 問的太籠統(tǒng),生成靜態(tài)html頁面,squid反向代理,apache,mysql的負(fù)載均衡。

  2) 可以采取數(shù)據(jù)緩存的方法,我們通常在統(tǒng)計數(shù)據(jù)的時候,需要在原始數(shù)據(jù)的基礎(chǔ)上經(jīng)過計算等一系列操作,才會得到最終的結(jié)果,如果每做一個查詢都需要這樣一系列操作,當(dāng)數(shù)據(jù)量大時,勢必會帶來很多問題。可以建立一個結(jié)果表,寫一個腳本,用crontab定時觸發(fā)腳本去原始表取數(shù)據(jù),計算,寫入到結(jié)果表,前端查詢從結(jié)果表取數(shù)據(jù),這也是比較常用的一種做法。

  3) 采用分布式,多個apache,多個mysql,其實就是dns負(fù)載均衡,dns根據(jù)當(dāng)前用戶解析幾個ip的ping值,將用戶轉(zhuǎn)移到某一臺最快的服務(wù)器,或者平均分配。

  4 )money不是問題的話,可以考慮F5硬件負(fù)載均衡!

  5)可以使用Microsoft Windows Server系統(tǒng)的負(fù)載均衡設(shè)置

  3.數(shù)據(jù)庫中的事務(wù)是什么?

  答:事務(wù)(transaction)是作為一個單元的一組有序的數(shù)據(jù)庫操作。如果組中的所有操作都成功,則認(rèn)為事務(wù)成功,即使只有一個操作失敗,事務(wù)也不成功。如果所有操作完成,事務(wù)則提交,其修改將作用于所有其他數(shù)據(jù)庫進程。如果一個操作失敗,則事務(wù)將回滾,該事務(wù)所有操作的影響都將取消。

  4.1優(yōu)化MYSQL數(shù)據(jù)庫的方法。

  1、選擇合適的字段的數(shù)據(jù)類型

  1)能用數(shù)字不用字符串

  2)char、varchar、text 能用varchar不用char

  3)給字段加not null 避免在表中出現(xiàn)NULL關(guān)鍵字(default 值)

  2、選擇合適的字段充當(dāng)主鍵

  1)建議每張表必須有主鍵

  2)用數(shù)字類型的字段充當(dāng)主鍵

  3、拆分表

  1)拆分字段,將文章的標(biāo)題與內(nèi)容分開

  2)拆分記錄,將今年的記錄與往年的記錄分開

  4、給字段合理添加索引

  a.格式:

  (普通索引)->

  創(chuàng)建:CREATE INDEX <索引名> ON tablename (索引字段)

  修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)

  創(chuàng)表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段)) (唯一索引)->

  創(chuàng)建:CREATE UNIQUE <索引名> ON tablename (索引字段)

  修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)

  創(chuàng)表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段)) (主鍵)->

  它是唯一索引,一般在創(chuàng)建表是建立,格式為:

  CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])

  5、事務(wù)處理:

  a.保證數(shù)據(jù)完整性,例如添加和修改同時,兩者成立則都執(zhí)行,一者失敗都失敗 mysql_query("BEGIN");

  mysql_query("INSERT INTO customerinfo (name) VALUES ('$name1')";

  mysql_query("SELECT * FROM `orderinfo` where customerid=".$id");

  mysql_query("COMMIT");

  6、鎖定表,優(yōu)化事務(wù)處理:

  a.我們用一個 SELECT 語句取出初始數(shù)據(jù),通過一些計算,用 UPDATE 語句將新值更新

49898