導航:首頁 > 編程語言 > php經典面試題

php經典面試題

發布時間:2023-09-19 05:53:31

php中高級面試題 – 第一天

一、寫一個函數,獲取一篇文章內容中的全部圖片,並下載

二、什麼是 CSRF 攻擊?XSS 攻擊?如何防範?
CSRF:跨站請求偽造,可以通過通過判斷來源和加 Token 的方式來防範。

XSS:跨站腳本攻擊,可以通過對內容轉義和過濾來防範,還有 CSP

三、應用中我們經常會遇到在 user 表隨機調取 10 條數據來展示的情況,簡述你如何實現該功能。

四、MYSQL 中主鍵與唯一索引的區別

主鍵:絕對不能有空值。唯一索引:可以有空值

五、http 與 https 的主要區別

關鍵是 S 上。簡而言之,https 建立連接後要先把 SSL 的證書發下去,有了公鑰和私鑰,就可以解密了。

六、兩台 mysql 伺服器,其中一台掛了,怎麼讓業務端無感切換,並保證正常情況下講台伺服器的數據是一致的

不是核心業務的話,先停寫,把備機拉起來,查看兩台機器的日誌,進行數據補償,開寫。

如果是核心業務的話,現在所有的操作都在正常的狀態機器上。把好的這台機器的備機拉起來,當主機。

以上全是應急操作。實際上資料庫的容災設計要復雜得多。

面試官要是問你,備機的數據不一致怎麼辦,你要勇敢懟回去,你們每秒多少寫入操作。按照百萬級表,每秒 1000 的寫入效率,正常的設計是,分布在 2 台機器上每台 500。這個級別的數據同步,出現差異的概率 可以忽略不計的。有一台出現問題,另一台也可以抗住。

(正常的操作,還是先停寫,等數據一致,切換,開寫。我們公司搞這些切換都是在凌晨 4.00 左右,核心業務的每秒寫操作,只有十幾個。前後耽擱不到 20 秒)。

七、10 瓶水,其中一瓶有毒,小白鼠喝完有毒的水之後,會在 24 小時後死亡,問:最少用幾只小白鼠可以在 24 小時後找到具體是哪一瓶水有毒。

答案:四隻
二進制問題。薛定諤的老鼠。

一隻老鼠有兩個狀態,死活,對應 01。假設老鼠的個數為 A,則有 2^A>=10; A=4;

思路很簡單,十瓶葯編號:0,1,10,11….1001;

0 不喝。第一隻老鼠喝所有個位是 1 的:13579,第二隻喝十位是 1 的,第三隻和百位是 1 的,第四隻喝千位是 1 的。

24 小時後,看下死了的是 1,活著的是 0。按老鼠的順序乖乖站好…… 假如第一隻和第三隻死了,那就是 0101,就是 5 有問題。

② PHP中高級面試題 – 第三天

一、簡述一下MongoDB的應用場景

mongodb 支持副本集、索引、自動分片,可以保證較高的性能和可用性。

更高的寫入負載

默認情況下,MongoDB 更側重高數據寫入性能,而非事務安全,MongoDB 很適合業務系統中有大量 「低價值」 數據的場景。但是應當避免在高事務安全性的系統中使用 MongoDB,除非能從架構設計上保證事務安全。

高可用性

MongoDB 的復副集 (Master-Slave) 配置非常簡潔方便,此外,MongoDB 可以快速響應的處理單節點故障,自動、安全地完成故障轉移。這些特性使得 MongoDB 能在一個相對不穩定(如雲主機)的環境中,保持高可用性。

數據量很大或者未來會變得很大

依賴資料庫 (MySQL) 自身的特性,完成數據的擴展是較困難的事,在 MySQL 中,當一個單達表到 5-10GB 時會出現明顯的性能降級,此時需要通過數據的水平和垂直拆分、庫的拆分完成擴展,使用 MySQL 通常需要藉助驅動層或代理層完成這類需求。而 MongoDB 內建了多種數據分片的特性,可以很好地適應大數據量的需求。

基於位置的數據查詢

MongoDB 支持二維空間索引,因此可以快速及精確地從指定位置獲取數據。

表結構不明確

在一些傳統 RDBMS 中,增加一個欄位會鎖住整個資料庫 / 表,或者在執行一個重負載的請求時會明顯造成其它請求的性能降級。通常發生在數據表大於 1G 的時候(當大於 1TB 時更甚)。 因 MongoDB 是文檔型資料庫,為非結構貨的文檔增加一個新欄位是很快速的操作,並且不會影響到已有數據。另外一個好處當業務數據發生變化時,是將不再需要由 DBA 修改表結構。

二、資料庫設計經驗,為什麼進行分表?分庫?一般多少數據量開始分表?分庫?分庫分表的目的?

1、為什麼要分表

當一張表的數據達到幾百萬時,你查詢一次所花的時間會變多,如果有聯合查詢的話,有可能會死在那兒了。分表的目的就在於此,減小資料庫的負擔,縮短查詢時間。日常開發中我們經常會遇到大表的情況,所謂的大表是指存儲了百萬級乃至千萬級條記錄的表。這樣的表過於龐大,導致資料庫在查詢和插入的時候耗時太長,性能低下,如果涉及聯合查詢的情況,性能會更加糟糕。

分表和表分區的目的就是減少資料庫的負擔,提高資料庫的效率,通常點來講就是提高表的增刪改查效率。資料庫中的數據量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的數據量也會越來越大,相應地,數據操作,增刪改查的開銷也會越來越大;另外,由於無法進行分布式式部署,而一台伺服器的資源(CPU、磁碟、內存、IO 等)是有限的,最終資料庫所能承載的數據量、數據處理能力都將遭遇瓶頸。

2、分表的方案

做 mysql 集群,有人會問 mysql 集群,根分表有什麼關系嗎?雖然它不是實際意義上的分表,但是它啟到了分表的作用,做集群的意義是什麼呢?為一個資料庫減輕負擔,說白了就是減少 sql 排隊隊列中的 sql 的數量,舉個例子:有 10 個 sql 請求,如果放在一個資料庫伺服器的排隊隊列中,他要等很長時間,如果把這 10 個 sql 請求,分配到 5 個資料庫伺服器的排隊隊列中,一個資料庫伺服器的隊列中只有 2 個,這樣等待時間是不是大大的縮短了呢?

linux mysql proxy 的安裝,配置,以及讀寫分離

mysql replication 互為主從的安裝及配置,以及數據同步

優點:擴展性好,沒有多個分表後的復雜操作(php 代碼)

缺點:單個表的數據量還是沒有變,一次操作所花的時間還是那麼多,硬體開銷大。

三、簡述一下資料庫主從復制,讀寫分離

* 什麼是主從復制
主從復制,是用來建立一個和主資料庫完全一樣的資料庫環境,稱為從資料庫;

* 主從復制的原理:
1.資料庫有個bin-log二進制文件,記錄了所有的sql語句。
2.只需要把主資料庫的bin-log文件中的sql語句復制。
3.讓其從數據的relay-log重做日誌文件中再執行一次這些sql語句即可。

* 主從復制的作用
1.做數據的熱備份,作為後備資料庫,主資料庫伺服器故障後,可切換到從資料庫繼續工作,避免數據丟失。
2.架構的擴展。業務量越來越大,I/O訪問頻率過高,單機無法滿足,此時做多庫的存儲,降低磁碟I/O訪問頻率,提高單機的I/O性能
3.主從復制是讀寫分離的基礎,使資料庫能製成更大 的並發。例如子報表中,由於部署報表的sql語句十分慢,導致鎖表,影響前台的服務。如果前台服務使用master,報表使用slave,那麼報表sql將不會造成前台所,保證了前台的訪問速度。

* 主從復制的幾種方式:
1.同步復制:所謂的同步復制,意思是master的變化,必須等待slave-1,slave-2,…,slave-n完成後才能返回。
2.非同步復制:如同AJAX請求一樣。master只需要完成自己的資料庫操作即可。至於slaves是否收到二進制日誌,是否完成操作,不用關心。MYSQL的默認設置。
3.半同步復制:master只保證slaves中的一個操作成功,就返回,其他slave不管。
這個功能,是由google為MYSQL引入的。

* 關於讀寫分離
在完成主從復制時,由於slave是需要同步master的。所以對於insert/delete/update這些更新資料庫的操作,應該在master中完成。而select的查詢操作,則落下到slave中。

③ php面試題解答

1,
var x=document.getElementById("img1");
var title=document.getElementById("img1").title;
var sina_title=document.getElementById("img1").sina_title;

2,serialize(),unserialize();

3,編碼方式不同,urlencode()將字串以URL編碼。例如空格就會變成加號。
rawurlencode()將url編碼成url的字元串專用格式,特殊字元回轉換成百分號後面加兩個十六子介數字的格式。
4,strip_tags(),html_entity_decode();

5,$str=preg_replace("/\<script.*\>.*\<\/script\>/i","",$str);
6,左連接,左連接的表如果沒有匹配的數據不影響結果。
7
SELECT name,score FROM tl_user LEFT JOIN tl_score ON tl_user.ID=tl_score.ID
7 system(),exec(),passthru()
8,json_decode ,json_encode
9 isset() empty()
10 後者的許可權大於前者,後者是OFF的話,前者就算是E-ALL也沒用。
11,$_SERVER['REMOTE_ADDR'];
12,incov()
echo iconv("gbk",""UTF-8,"我們");
mb_convert_encoding($str, "GBK", "UTF-8")
13 explode() split() ;implode() join()
14 注意事項挺多的,懶得寫。

1,超時,伺服器已經關閉連接
2 靜態表欄位長度固定,自動填充,讀寫速度很快,便於緩存和修復,但比較占硬碟,動態表是欄位長度不固定,節省硬碟,但更復雜,容易產生碎片,速度慢,出問題後不容易重建。
3InnoDB和MyISAM是在使用MySQL最常用的兩個表類型,各有優缺點,視具體應用而定。基本的差別為:MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持。MyISAM類型的表強調的是性能,其執行數度比InnoDB類型更快,但是不提供事務支持,而InnoDB提供事務支持已經外部鍵等高級資料庫功能。
MyIASM是IASM表的新版本,有如下擴展:
二進制層次的可移植性。
NULL列索引。
對變長行比ISAM表有更少的碎片。
支持大文件。
更好的索引壓縮
更好的鍵嗎統計分布。
更好和更快的auto_increment處理。
1.MySQL最大的優勢在於MyISAM引擎下的簡單SELECT,INSERT和UPDATE快速操作
2.MyISAM類型的數據文件可以在不同操作系統中COPY,這點很重要,布署的時候方便點。

以下是一些細節和具體實現的差別:
1.InnoDB不支持FULLTEXT類型的索引。
2.InnoDB 中不保存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行,但是MyISAM只要簡單的讀出保存好的行數即可。注意的是,當count(*)語句包含 where條件時,兩種表的操作是一樣的。
3.對於AUTO_INCREMENT類型的欄位,InnoDB中必須包含只有該欄位的索引,但是在MyISAM表中,可以和其他欄位一起建立聯合索引。
4.DELETE FROM table時,InnoDB不會重新建立表,而是一行一行的刪除。
5.LOAD TABLE FROM MASTER操作對InnoDB是不起作用的,解決方法是首先把InnoDB表改成MyISAM表,導入數據後再改成InnoDB表,但是對於使用的額外的InnoDB特性(例如外鍵)的表不適用。
另外,InnoDB表的行鎖也不是絕對的,如果在執行一個SQL語句時MySQL不能確定要掃描的范圍,InnoDB表同樣會鎖全表,例如update table set num=1 where name like 「%aaa%」
以暫對存儲引擎的認識,覺得 InnoDB 支持外鍵,在數據量可以用「龐大」來形容時,在有良好的 INDEX 的基礎上,InnoDB 的查詢速度應該比 MyISAM 要快。
在 Falcon 有穩定版本前,我想 MyISAM 是一個可用的選擇方案。
任何一種表都不是萬能的,只用恰當的針對業務類型來選擇合適的表類型,才能最大的發揮MySQL的性能優勢
3, 都是1 ^^懶得回答了,睡覺去。

④ 誰能告訴我一些PHP開發常見的面試題呢

1、表單提交get和post有何區別?
答:get的方式是把數據在地址欄中發送,get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
2、用PHP列印出前一天的時間格式是2006-5-1022:21:21

復制代碼代碼示例:
echo date("Y-m-dH:i:s",time()-(3600*24));或echodate("Y-m-d H:i:s",strtotime("-1 day"));

3、php中include和require的區別?
這兩種結構除了在如何處理失敗之外完全一樣。include()產生一個警告而 require() 則導致一個致命錯誤。換句話說,如果你想在遇到丟失文件時停止處理頁面就用 require()。include() 就不是這樣,腳本會繼續運行。

4、echo(),print(),print_r()的區別
echo可以接多個參數,print只能接一個參數,它們都是PHP的語言結構,print_r是遞規列印,用來列印數組或對象

5、能夠使HTML和PHP分離開使用的模板
smarty,phplib,SmartTemplate

6、如何理解MVC模式?
首先說一下框架,框架:就是別人把一些底層,常用操作.比如數據操作(增,刪,改,查)寫好.你來直接用.其它的功能要自己來做。
MVC:設計模式,M模型,V顯示,C控制.現在許多框架都是基於MVC來做的把邏輯和顯示分開.比如你要換頁面,只需要改V裡面的東西並不需要再去變動程序!(詳細的東西可以上網上查一下)

7、如何實現PHP、JSP交互?
PHP提供了支持JAVA的類庫文件,或者通過HTTP協議來交互數據
8、使用哪些工具進行版本控制?
VSS,CVS,SVN
http://www.jbxue.com/php/25446.html

⑤ PHP基礎面試題 – 第三天

1、 下面語句執行的結果是:

A:1 2 3 4
B:1 1 3 4
C:1 2 3 3
D:1 2 3 5
E:以上都不是

答案:B

2、下面那些說法是錯誤的:

答案:A

3、array_shift()函數的作用是?

A 在數組中新增一個元素
B 移除數組中的一個元素
C 交換一個數組的key和value
D 清除一個數組

答案:B

4、你將使用下面哪個函數來刪除一個文件?

A unlink()
B delete()
C fdelete()
D: file_delete()

答案:A

5、請看代碼,資料庫關閉指令將關閉哪個鏈接標識?

A.$link1
B $link2
C 全部關閉
D 報錯

答案:B
//mysql_close() 關閉指定的連接標識所關聯的到 MySQL 伺服器的連接。如果沒有指定 link_identifier,則關閉上一個打開的連接。

程序員面試必備PHP基礎面試題 – 第十三天

一、在HTTP1.0中,狀態嗎500的含義的是什麼?如果返回「找不到文件」的提示,則可用header(函數),其語句為?

500 Internal Server Error 伺服器遇到了意料不到的情況,不能完成客戶的請求
Header(「 HTTP/1.0 404 NOT FOUND」);

二、數組函數arsort()的作用是什麼?語句err_reporting(2047)的作用是什麼?

arsort:對數組進行逆向排序並保持索引關系;
error_reporting(2047)的作用是:report All errors and warnings

三、語句include和require都能把另外一個文件包含到當前文件中,它們的區別是___;為避免多此包含同一個文件,可以用語句_____來代替它們。

在如何處理失敗時,include() 產生一個警告而 require() 則導致一個致命錯誤; require_once()/include_once()

四、get_magic_quotes_gpc的作用是_______

本函數取得 PHP 環境配置的變數 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示關閉本功能;返回 1 表示本功能打開。當 magic_quotes_gpc 打開時,所有的 『 (單引號), 」 (雙引號), (反斜線) and 空字元會自動轉為含有反斜線的溢出字元。

五、在php中, heredoc是一種特殊的字元串, 他的結束標志必須是_____

結束標識符所在的行不能包含任何其它字元除」;」

六、寫出一個正則表達式, 把$string中的所有數字全部刪除

preg_replace(『/d/U』,』』,$string);

七、找出/data1/source 目錄中大於100k 的文件, 並復制到 ~/tmp/35/下

find /data1/source +size >100k | cp ~/temp/35/

八、perl –pi –e 『s|ABCD|Linux|g』 `find ./ -type f`的含義是

find ./-type f:找尋當前目錄下的類型為f的文件

九、10 2 * * * /data0/apache/schele/ussd/topnews/import_data.pl > /dev/null 的含義:_______將import_data.pl清空或刪除

十、rsync -avu 105903.zip 218.206.86.68::mmsres/resource/291/205的含義:_________備份數據用

-a 歸檔模式,遞歸傳輸文件;
-v 詳細模式輸出;
-u, –update 僅僅進行更新,也就是跳過所有已經存在於DST,並且文件時間晚於要備份的文件。(不覆蓋更新的文件)

十一、寫出x,y的值

十二、使用純CSS實現未知寸的圖片(但高度都小於200px) 在200px的正方形容器中水平和垂直居中,HTML代碼如下

⑦ 用PHP解決的一個棧的面試題

前言
遇到一道面試題,題目大概意思如下:
使用兩個普通棧實現一個特殊棧,使得pop、push、min三個函數的都是復雜度為O(1)的操作,min函數是獲得當前棧的最小值。
初步想法
1.要實現min函數為(1)操作,當時第一想法是事先需要算好當前最小值,於是會想到用一個值來保存當前棧中最小值元素,然後push和pop操作的時候維護這個值。這樣min,push都是O(1)了,但pop可不是,如果當前彈出的是最小值,需要從新尋找當前元素的最小值,這個就不是o(1)了。
2.而且上面方法沒有用到另外一個棧,於是又想到:在一個棧中存儲排好序的元素,同樣在push和pop操作中維護這個有序堆棧,如圖:
但是這樣的話min操作是O(1),但是push、pop操作因為要維護這個有序棧,怎麼也想不到一個方法可以O(1)的復雜度。
當時覺得肯定是在另一個棧中緩存最小值信息,但是不知道是因為沒吃飯還是怎麼地,思維就此僵住了。
正確解法
遇到問題解決不了,感覺心裡很不爽,於是吃飯的時候又開始想怎麼充分理由棧的特性,有效的緩存最小值信息,以便min操作使用。
棧操作最大的特性是只能操作棧頂元素,想到那用一個輔助棧緩存每次棧操作時的最小值,不是剛剛好。這樣每次pop操作的時候,兩邊一起彈出就可以;因為輔助棧的棧頂元素最當前棧中的最小值,push操作是也只需要比較入棧元素和輔助棧棧頂元素就可以。這樣push、pop、min都都O(1)操作了。如圖:
文字可能沒說清楚,上代碼,下面是PHP的實現,通過數組來模擬堆棧。
<?php
/**
*
使用一個輔助棧,O(1)復雜度求出棧中的最小數
*
@hack
類中通過數組來模擬堆棧
*
*
@author
laiwenhui
*/
class
strack{
/**
*
數據棧,存儲棧數據;
*
*
@var
array
*/
private
$_arrData
=
array();
/**
*
輔助棧,存儲數據組棧中每層的最下值信息;
*
*
@var
array
*/
private
$_arrMin
=
array();
/**
*
棧頂所在單元
*
*
@var
int
*/
private
$_top=-1;
/**
*
出棧
*
@return
bool|int
*/
public
function
pop(){
if
($this->_top
===
-1){
return
false;
}
array_pop($this->_arrMin);
$this->_top--;
return
array_pop($this->_arrData);
}
/**
*
入棧
*
@param
int
$element
*
@return
bool
*/
public
function
push($element){
$element
=
intval($element);
//如果棧為空,直接入棧
if
($this->_top
===
-1){
array_push($this->_arrData,
$element);
array_push($this->_arrMin,
$element);
$this->_top++;
return
true;
}
//不為空,判斷入棧的值是否比最小棧棧頂小
$min
=
$this->_arrMin[$this->_top];
//比較求出最小值
$currentMin
=
$element
<
$min
?
$element
:
$min;
//當前棧中最小值入棧
array_push($this->_arrMin,
$currentMin);
//數據入棧
array_push($this->_arrData,
$element);
$this->_top++;
return
true;
}
/**
*
求當前棧空間的最小值
*
@return
bool|int
*/
public
function
min(){
if
($this->_top
===
-1){
return
false;
}
return
$this->_arrMin[$this->_top];
}
}
使用如下:
復制代碼
代碼如下:
$obj
=
new
strack();
$obj->push(12);
$obj->push(56);
$obj->push(23);
$obj->push(89);
$obj->push(4);
var_mp($obj->min());
$obj->pop();
var_mp($obj->min());
$obj->push(8);
var_mp($obj->min());
輸出為:
復制代碼
代碼如下:
int(4)
int(12)
int(8)
OK,滿足要求。
你是否有其他更好方法實現,如果有,請告訴我^_^

⑧ 面試高階php工程師,一般會問到哪些問題

面試高階php工程師,一般會問到哪些問題

  1. 高並發大訪問量的mysql優化,伺服器優化?

欄位建索引、主從資料庫、讀寫分離、表分割槽、負載均衡。

linux的慢查詢日誌會記錄mysql的超時查詢sql語句,定期察看進行優化。

2.大訪問量下秒殺模組程式怎麼設計,如果使用mysql會有多賣的情況,就是訂單超過庫存。

將訂單資料快取到記憶體,如果用資料庫直接崩掉,毫無懸念的。

3.快取的使用

能用靜態的用靜態,不能靜態的用記憶體快取,例如memcache、redis,不能快取的用資料庫。

4.session可不可以跨域?怎麼跨域?

將PHP session機制褲型沖重寫(PHP提供),將session儲存在memcache或者資料庫就可以跨域了。

另外session能以三種方式儲存,檔案、資料庫、快取。

5.了不了解非關系型資料庫?

mongodb

6.會不會寫shell指令碼以及linux的操作

還會問一下時下流行的東西,比如做沒做過微信開發,例如微信支付開發、APP移動開發,等等問題。

問的核心東西都是圍繞這些轉的,如果有筆試會讓你寫sql,php功能(例如氣泡排序等排序),還有邏輯題。

我當初面試了很多,這是一個我的面試經驗的總結,純手打忘採納。

高階php工程師都做哪些工作?

釋出任務,提出解決方案,解決核心程式碼之類的。其它交給底下做。

面試三次元量測工程師會問哪些問題

其實,不管是什麼樣的面試形,問的問題都差不多,萬變不離其宗,都有規律可尋。其實對所有的面試官而言,只有一個目的:在最短的時間里了解到你最多的資訊。想高效率的准備面試,先從這七個大方面著手吧!
一、基本情況
1、請用最簡潔的語言描述您從前的工作經歷和工作成果。
二、專業背景
您認為此工作崗位應當具備哪些素質?
三、工作模式
您平時習慣於單獨工作還是團隊工作?
四、價值取向
您對原來的單位和上司的看法如何?
五、資質特性
您如何描述自己的個性?
六、薪資待遇
是否方便告訴我您目前的待遇是多少?
七、背景調查
您是否介意我們通過您原來的單位迚行一些調查?
95%的面試基本上都離不開這些問題,當然還有可能問一些專業問題,我想如果你做過的話應該都不是什麼難事,一般面試胡殲官都不會過多的問專業方面的問題的。以上資訊直接參考楚湘人才網面試寶典篇之化繁為簡,把HR的上百道問題匯總成七大類和面試常問經典問題。更多更全面的面試資訊 面試技巧 面試問題請登陸楚湘人才網或關注微信公眾平台:楚湘人才網

2015年高階工程師答辯會問哪些問題

沒有統一標準的,不同專業、不同專家會問不同問題,都是隨機的,沒有固定模式。

大疆面試硬體工程師,一般會問什麼問題

分兩類
1、會技術的面試官:會問你有沒有做過一些小設計,如果這設計有點難度就會圍繞這說,如果是普通貨就會問你其它基礎電路問題。
2、裝13的人事部:閑聊日常生活,估算你對它們有沒有用。

關於面試水電工程師會問哪些問題

1、水電工程師面試自我介紹
2、水利水電工程

什麼是高階PHP工程師

PHP技術人才,正迎合了目前的網際網路的發展趨勢;PHP作為非常優秀的、簡便的Web開發語言,和Linux,Apache,MySQL緊密結合,形成LAMP的開源黃金組合,不僅降低使用成本,還提升了開發速度,滿足最新的互動式網路開發的應用,這使得php軟體工程師成為一個發展迅速的職業。

面試機械工程師,技術部的一般會問那些問題?

興趣、愛好、特長等各方面都可能問到。

在、技術方面的多從公司產品面問。
所以你要先了解這個公司的產品特性,看看合你專業相關的部分來准備。

面試php工程師出什麼考題好

php的面試一般分為三個部分:筆試部分,會針對一些語法問題,常用基礎技術問題,出一份試卷給你做;面試問題,針對你的簡歷,主管會經營詢問驗證,並對你進行綜合打分;上機操作,會根據職位要求,要求你上線一個小功能之租喊類的;總之,會結合崗位要求,對你的基本功、專業技能,以及綜合素質進行簡單的考核,一般不難!【如果對你有幫助,望採納】

1.PHP基本功,字串與陣列
2.網路功能,發起curl,socket程式設計等
3.對網路開發的理解,tcp/udp, 協議的討論
PS:對具體函式的掌握要求不高,反正可以查手冊。

⑨ PHP程序員上機面試題(並附答案,回答好的加分)

題集網上有一套php的面試題:http://www.tijee.com/tags/46-php-face-questions/posts

⑩ 程序員面試必備PHP基礎面試題 – 第十一天

一、兩張表 city表和province表。分別為城市與省份的關系表。

表名:city
id City Provinceid
1 廣州 1
2 深圳 1
3 惠州 1
4 長沙 2
5 武漢 3
………. 廣州
表名稱:province:
id Province
1 廣東
2 湖南
3 湖北
……….

1、寫一條sql語句關系兩個表,實現:顯示城市的基本信息。顯示欄位:城市id ,城市名, 所屬省份 。
如:
Id(城市id) Cityname(城市名) Privence(所屬省份)

2、如果要統計每個省份有多少個城市,請用group by 查詢出來。顯示欄位:省份id ,省份名,包含多少個城市。

二、主鍵 和外鍵表示什麼?一般用於做什麼?

主鍵:能夠唯一表示數據表中的每個記錄的欄位或者欄位的組合就稱為主鍵。一個主鍵是唯一識別一個表的每一行記錄,但這只是其作用的一療分,主鍵的主要作用是將記錄和存放在其他表中的數據進行關聯,在這一點上,主鍵是不同表中各記錄間的簡單指針,主鍵約整就是確定表中的每一條記錄,主鍵不能是空值,唯一約束是用於指定一個或多個列的組合值具有唯一性,以防止在列中輸入重復的值,所以,主鍵的值對用戶而言是沒有什麼意義,並且和它賦予的值也沒有什麼特別聯系。

外鍵:若有兩個表A,B,C是A的主鍵,而B中也有C欄位,則C就是表B的外鍵,外鍵約束主要用來維護兩個表之間數據的一致性。A為基本表,B為信息表。
在資料庫中,常常不只是一個表,這些表之間也不是相互獨立的,不同的表之間需要建立一種關系,才能將它們的數據相互溝通,而在這個溝通過程中,就需要表中有一個欄位作為標志,不同的記錄對應的欄位取值不能相同,也不能是空白的,通過這個欄位中不同的值可以區別各條記錄,就像我們區別不同的人,每個人都有名字,但它卻不能作為主鍵,因為人名很容易出現重復,而身份證號是每個人都不同的,所以可以根據它來區別不同的人,資料庫的表中作為主鍵的段段就要像人的身份證號一樣,必須是每個記錄的值都不同,這才能根據
主鍵的值來確定不同的記錄。

關系:外鍵一定是另外某個表的主鍵。

三、select now(),Date_ADD(now(),INTERVAL 14 day),Date_SUB(now(),INTERVAL 3 Day) from table; 會獲得什麼內容,請寫出來。

會獲得三條數據:
第一條:當前時間;
第二條:當前時間加上14天;
第三條:當前時間減去3天。

四、您所知道的MYSQL 資料庫備份,還原方式有哪幾種?
備份:
一,搭建主從架構,master-slave,通過binlog文件同步復制主庫的數據,也可以直接通過binlog文件恢復數據。
二,通過系統計劃任務執行mysqlmp做周期性全備份。
三,物理備份,直接拷貝數據文件、參數文件、日誌文件。
還原:
一.通過mysql操作工具,如phpmyadmin,sqlyog等導入備份過的資料庫文件。
二.將物理備份的文件拷貝到mysql的data目錄下

五、內容管理系統中,表message有如下欄位
id 文章id
title 文章標題
content 文章內容
category_id 文章分類id
hits 點擊量
創建上表,寫出MySQL語句

六、同樣上述內容管理系統:表comment記錄用戶回復內容,欄位如下
comment_id 回復id
id 文章id,關聯message表中的id
comment_content 回復內容
現通過查詢資料庫需要得到以下格式的文章標題列表,並按照回復數量排序,回復最高的排在最前面
文章id 文章標題 點擊量 回復數量
用一個SQL語句完成上述查詢,如果文章沒有回復則回復數量顯示0

七、內容管理系統,表category保存分類信息,欄位如下
category_id int(4) not null auto_increment;
category_name varchar(40) not null;
用戶輸入文章時,通過選擇下拉菜單選定文章分類
寫出如何實現這個下拉菜單

八、PHP文件操作

1、內容管理系統:用戶提交內容後,系統生成靜態HTML頁面;寫出實現的基本思路

2、簡單描述用戶修改發布內容的實現流程和基本思路

1)當用戶提交後生成一個由url地址MD5後的文件的編譯頁面,用文件處理file函數生成一個模板合成頁,判斷模板編譯頁是否有,模板頁無或者編譯頁的創建時間戳小於模板頁的修改時間都會從新生成編譯頁面,編譯後的頁面會調用對應資料庫的值顯示在頁面中,通過對內存數據的讀取釋放,顯示出我們看到的靜態數據,然後用file文件將其保存起來生成靜態的頁面

2)當用戶修改了發布內容都會修改數據相關的內容,並通過編譯頁面更新靜態數據並用文件的方式緩存起來,當用戶查看時將不做任何資料庫查找,直接調用該緩存文件即可

閱讀全文

與php經典面試題相關的資料

熱點內容
outlook命令 瀏覽:229
程序員那麼可愛主角介紹 瀏覽:934
銀行卡簡訊消息如何加密 瀏覽:246
文件夾怎麼不重名 瀏覽:406
linuxyum安裝java 瀏覽:250
java數字計算 瀏覽:286
java按鈕文字 瀏覽:641
python列表互換位置 瀏覽:337
sw怎麼刪除定向命令 瀏覽:757
php包含數組元素 瀏覽:666
安卓系統開發app需要什麼 瀏覽:730
ssh2項目源碼 瀏覽:288
三星提供了什麼伺服器地址 瀏覽:903
阿里雲輕量應用伺服器60元 瀏覽:160
微信公眾號支付java 瀏覽:217
蝦皮用的什麼伺服器 瀏覽:144
拍照的app哪個好用 瀏覽:890
方舟編譯器2022 瀏覽:770
一般情況下源碼注釋量 瀏覽:743
18號命令 瀏覽:871