某知名互聯(lián)網(wǎng)下載服務(wù)商PHP工程師面試筆試真題及答案_第1頁
某知名互聯(lián)網(wǎng)下載服務(wù)商PHP工程師面試筆試真題及答案_第2頁
某知名互聯(lián)網(wǎng)下載服務(wù)商PHP工程師面試筆試真題及答案_第3頁
某知名互聯(lián)網(wǎng)下載服務(wù)商PHP工程師面試筆試真題及答案_第4頁
某知名互聯(lián)網(wǎng)下載服務(wù)商PHP工程師面試筆試真題及答案_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

某知名互聯(lián)網(wǎng)下載服務(wù)商PHP工程師面試筆試真題及答案一、選擇題1、PHP是一種______的語言。

A.編譯型

B.解釋型

C.兩者都是

D.兩者都不是

2、以下關(guān)于B/S構(gòu)架的描述中,正確的是______

A.需要安裝客戶端的軟件

B.不需要安裝就可以使用的軟件

C.依托瀏覽器的網(wǎng)絡(luò)系統(tǒng)

D.依托Outlook等軟件的郵件系統(tǒng)

3、以下程序的運(yùn)行結(jié)果是______

<?php

$array='0123456789ABCDEFG';

$s=";

for($i=1;$i<50;$i++){

$s.=$array[rand(0,strlen($array)-1)];

}

echo$s;

?>

A.50個(gè)隨機(jī)字符組成的字符串

B.49個(gè)隨機(jī)字符組成的字符串

C.49個(gè)相同字符組成的字符串,因?yàn)闆]有初始化隨機(jī)數(shù)生成器

D.49個(gè)字母“G”組成的字符串

4、如下代碼:

<?php

$fruits=array('strawberry'=>'red','banana'=>'yellow');

?>

不能夠正確得到結(jié)果'yellow'的代碼是______

A.echo"Abananais{$fruits['banana']}";

B.echo"Abananais$fruits['banana']";

C.echo"Abananais{$fruits[banana]}";

D.echo"Abananais$fruits[banana]";

5、$result=preg_replace("∧s*\[quote\][\n\r]*(.+?)[\n\r]*\[∨quote\]\s*/is","\\1",$str);該語句會(huì)匹配和替換出什么樣的$str?______

A.[quote][/quote]不區(qū)分大小寫

B.[quote][/quote]區(qū)分大小寫

C.如果$str="[quote]\t\nabc\t\n[/quote],則$result="\t\nabc\t\n";

D.如果$str="[quote]\t\nabc\t\n[/quote],則$result='abc';

6、下列有關(guān)繼承的說法中,正確的是______

A.子類能繼承父類的所有方法和狀態(tài)

B.子類能繼承父類的非私有方法和狀態(tài)

C.子類只能繼承父類public方法和狀態(tài)

D.子類能繼承父類的方法,而不是狀態(tài)

7、函數(shù)header()不可以被用來______

A.轉(zhuǎn)到指定的url

B.引用js文件

C.設(shè)置HTTP首部信息狀態(tài)碼

D.提示下載文件

8、當(dāng)PDO對象創(chuàng)建成功以后,與數(shù)據(jù)庫的連接已經(jīng)建立,就可以使用PDO對象了,下面不是PDO對象中的成員方法的是______

A.errorInfo()

B.bindParam()

C.exec()

D.prepare()

9、考慮如下數(shù)據(jù)表和查詢,如何添加索引能提高查詢速度?______

CREATETABLEMYTABLE(

IDINT,

NAMEVARCHAR(100),

ADDRESS1VARCHAR(100),

ADDRESS2VARCHAR(100),

ZIPCODEVARCHAR(10),

CITYVARCHAR(50),

PROVINCEVARCHAR

(2)

)

SELECTID,VARCHARFROMMYTABLEWHEREIDBETWEEN0AND100ORDERBYNAME,ZIPCODE

A.給ID添加索引

B.給NAME和ADDRESS1添加索引

C.給ID添加索引,然后給NAME和ZIPCODE分別添加索引

D.給ZIPCODE和NAME添加索引

E.給ZIPCODE添加全文檢索

10、以下程序的運(yùn)行結(jié)果為______

<?php

$mystring='abc';

$findme

='a';

$pos=strpos($mystring,$findme);

if($pos===false)

echo"notfound";

else

echo"found";

?>

A.notfound

B.found

C.foundnotfoundD.not

二、填空題11、在PHP中,用來獲取瀏覽器屬性的方法是______。

12、假設(shè)有一個(gè)名為'index.php'的文件的路徑為c:/apache/htdocs/phptutor/index.php,那么basename($_SERVER['PHP_SELF'])的返回值為______。

13、有關(guān)獲取上傳文件的信息的預(yù)定義數(shù)據(jù)變量的是______。

14、修改MySQL用戶root的密碼的指令是______。

15、PHP的Session擴(kuò)展默認(rèn)將Session數(shù)據(jù)存儲(chǔ)在______。

三、簡答題16、什么是會(huì)話?為什么要使用它?

17、什么是數(shù)組?數(shù)組根據(jù)索引分為哪兩種?如何區(qū)分?數(shù)組的賦值方式有哪兩種?

18、做一套圖片管理系統(tǒng),關(guān)于用戶圖片的上傳,如何盡量避免以下問題的發(fā)生:

①圖片被盜用;②圖片重復(fù)上傳。圖片上傳保存目錄如何設(shè)置?

19、什么是HTTP請求?

20、數(shù)據(jù)庫中的事務(wù)是什么?它有什么特性?

四、編程題21、按要求編程,創(chuàng)建一個(gè)長度為10的數(shù)組,數(shù)組中的元素滿足斐波那契數(shù)列的規(guī)律。(斐波那契數(shù)列,又稱黃金分割數(shù)列,指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、…在數(shù)學(xué)上,斐波那契數(shù)列以如下遞歸的方法定義:F0=0,F(xiàn)1=1,F(xiàn)n=F(n-1)+F(n-2)(n≥2,n∈N*)。特別指出,第0項(xiàng)是0,第1項(xiàng)是第一個(gè)1。)

22、使用五種以上方式獲取一個(gè)文件的擴(kuò)展名。要求:dir/upload.image.jpg,找出jpg或.jpg。必須使用PHP自帶的處理函數(shù)進(jìn)行處理,方法不能重復(fù),可以封裝成函數(shù),比如getext1($filename),getext2($filename)。

23、用PHP腳本解析出:/srfi-28/mail-archive/maillist.html這個(gè)頁面中出現(xiàn)的所有email,并保存到數(shù)組。

寫出滿足條件的SQL語句,其中user表中的部分?jǐn)?shù)據(jù)如下:

UserName

Tel

Content

Date

張三

大專畢業(yè)

2016-10-11

張一

本科畢業(yè)

2016-10-15

張四

中專畢業(yè)

2016-10-1524、有一新記錄(小中畢業(yè)2017-05-06),請用SQL語句新增至user表中。25、請用SQL語句把張三的時(shí)間更新為當(dāng)前系統(tǒng)時(shí)間。26、請寫出刪除名稱為張四的全部記錄。

答案:

一、選擇題

1、B[解析]PHP是一種解釋型語言,因?yàn)槠涞讓邮怯蒀語言編寫的,所以PHP代碼需要編譯為opcode之后再交由Zend引擎執(zhí)行,Zend引擎將這些PHP指令轉(zhuǎn)變成C語言指令,而C語言指令又會(huì)轉(zhuǎn)變成匯編語言,最后匯編語言將根據(jù)處理器的規(guī)則轉(zhuǎn)變成機(jī)器碼執(zhí)行。

PHP代碼解析需要用到解釋器,它是一種解釋型語言。選項(xiàng)B正確。

所以,本題的答案為B。2、C[解析]B/S結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu),在這種架構(gòu)下,用戶工作界面是通過瀏覽器來實(shí)現(xiàn)的,極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn)。

對于選項(xiàng)A,用戶只需要通過瀏覽器訪問服務(wù)端的代碼,就可以瀏覽操作網(wǎng)頁,無須安裝客戶端,需安裝客戶端的是C/S架構(gòu)。選項(xiàng)A錯(cuò)誤。

對于選項(xiàng)B,B/S架構(gòu)的軟件是通過瀏覽器打開使用的,但是軟件的部署需要安裝到服務(wù)器中,并且搭建軟件所需要的環(huán)境支持,還要保證軟件和數(shù)據(jù)庫都正常。選項(xiàng)B錯(cuò)誤。

對于選項(xiàng)C,B/S架構(gòu)下的軟件需要安裝瀏覽器,且計(jì)算機(jī)能請求遠(yuǎn)端的服務(wù)器才能使用該軟件。選項(xiàng)C正確。

對于選項(xiàng)D,B/S架構(gòu)主要依賴瀏覽器請求服務(wù)端進(jìn)行訪問操作,并不依托其他郵件系統(tǒng)。選項(xiàng)D錯(cuò)誤。

所以,本題的答案為C。3、B[解析]

首先$i=1,條件小于50,所以能循環(huán)49次。循環(huán)內(nèi)的$array的鍵是隨機(jī)生成的,每次循環(huán)rand()函數(shù)會(huì)自動(dòng)從0~16中取一個(gè)值出來給$s拼接,最終隨機(jī)輸出49個(gè)字符組成一個(gè)字符串。選項(xiàng)B正確。

所以,本題的答案為B。4、B[解析]

對于選項(xiàng)A,在字符串中用{}包括變量可以告訴編譯器花括號內(nèi)是一個(gè)變量,選項(xiàng)A是可以直接把yellow輸出的,選項(xiàng)A錯(cuò)誤。

對于選項(xiàng)B,$fruits['banana']變量被雙引號包括時(shí),編譯器會(huì)認(rèn)為單引號也是鍵名的一部分,$fruits的鍵名就不是“banana”而是“'banana'”了,導(dǎo)致執(zhí)行編譯時(shí)得不到這個(gè)鍵名而報(bào)錯(cuò),如果需要輸出這個(gè)變量,那么可以直接寫成$fruits[banana]進(jìn)行輸出。選項(xiàng)B正確。

對于選項(xiàng)C,用{}括起來的$fruits[banana]在編譯時(shí)編譯器知道是變量,然后會(huì)判斷banana是不是一個(gè)常量,如果不是常量,那么就會(huì)被自動(dòng)轉(zhuǎn)換成字符串輸出對應(yīng)鍵名的值,所以可以得到y(tǒng)ellow,但是輸出前會(huì)出現(xiàn)Notice提示這里的banana鍵名問題。選項(xiàng)C錯(cuò)誤。

對于選項(xiàng)D,雙引號包括的數(shù)組鍵名不用加單引號,否則編譯器會(huì)認(rèn)為單引號也是鍵名的一部分,所以$fruits[banana]沒有單引號是正確的。選項(xiàng)D錯(cuò)誤。

所以,本題的答案為B。5、AD[解析]

使用preg_replace()函數(shù)正則匹配時(shí)不區(qū)分字符串的大小進(jìn)行匹配。選項(xiàng)A正確,選項(xiàng)B錯(cuò)誤。

對于選項(xiàng)CD,相同的字符串,通過正則匹配后獲得的$result值為abc。選項(xiàng)D正確,選項(xiàng)C錯(cuò)誤。

所以,本題的答案為AD。6、B[解析]

子類是不能繼承父類的私有(private)方法和變量的,也不能繼承被final關(guān)鍵字修飾的類、方法。選項(xiàng)B正確。

所以,本題的答案為B。7、B[解析]header()函數(shù)的作用是向客戶端發(fā)送原始的HTTP報(bào)頭,即必須在任何實(shí)際的輸出被發(fā)送之前調(diào)用header()函數(shù)。header()函數(shù)不具備引用文件的功能,PHP只能使用include或require、include_once、require_once引用文件。

所以,本題的答案為B。8、B[解析]bindParam是PDOStatement類的方法,其余是PDO類的方法(PDOStatement也有errorInfo方法)。

errorInfo:從數(shù)據(jù)庫返回一個(gè)含有錯(cuò)誤信息的數(shù)組,如果有的話。

exec:執(zhí)行一條SQL語句并返回影響的行數(shù)。

prepare:為執(zhí)行準(zhǔn)備一條SQL語句。

所以,本題的答案為B。9、C[解析]

給ID字段設(shè)置索引能提高where條件執(zhí)行的效率,給NAME和ZIPCODE設(shè)索引則能使排序更快。

所以,本題的答案為C。10、B[解析]strpos()函數(shù)返回查找字符串的第一次出現(xiàn)的位置,a在abc的第一個(gè)位置,返回的是0,而0和false不全等,所以執(zhí)行else部分輸出found。

所以,本題的答案為B。二、填空題11、$_SERVER['HTTP_USER_AGENT']。12、/htdocs/phptutor/index.php。[解析]$_SERVER['PHP_SELF']可以獲取到正在執(zhí)行腳本的網(wǎng)頁路徑,除了根路徑不能獲取外,可以獲取具體到除了根路徑后的路徑名+當(dāng)前執(zhí)行文件名。13、$_FILES。[解析]$_FILES超級全局變量是預(yù)定義超級全局?jǐn)?shù)組中唯一的二維數(shù)組。其作用是存儲(chǔ)各種與上傳文件有關(guān)的信息,這些信息對于通過PHP腳本上傳到服務(wù)器的文件至關(guān)重要。14、mysqladmin-urootpasswordtest。[解析]

修改MySQL用戶root密碼的指令格式為。mysqladmin-u用戶名password密碼。15、FileSystem。[解析]

默認(rèn)情況下,PHP把所有會(huì)話信息存儲(chǔ)在/tmp文件夾中;在沒有這個(gè)文件夾的操作系統(tǒng)中(例如Windows),必須在php.ini中給session.save_path設(shè)置一個(gè)合適的位置(例如C:\Temp)。三、簡答題16、會(huì)話是指通過HTTP協(xié)議在Web服務(wù)器與客戶端(瀏覽器)之間的相互通信。

因?yàn)镠TTP協(xié)議是Web服務(wù)器與客戶端(瀏覽器)相互通信的協(xié)議,它是一種無狀態(tài)協(xié)議,即HTTP請求是獨(dú)立且不持久的。HTTP協(xié)議沒有一個(gè)內(nèi)建的機(jī)制來維護(hù)兩個(gè)事務(wù)之間的狀態(tài),用戶請求一個(gè)頁面后再去請求另一個(gè)頁面,HTTP無法告訴我們這兩個(gè)請求是否來自同一個(gè)用戶。所以需要使用HTTP會(huì)話控制,去跟蹤一個(gè)變量,通過變量追蹤使多個(gè)請求事務(wù)之間建立聯(lián)系,從一個(gè)網(wǎng)頁到另一個(gè)網(wǎng)頁的請求訪問可以知道是同一個(gè)用戶。

17、數(shù)組是一個(gè)特殊的變量,它可以同時(shí)保存一個(gè)或一組值的變量。數(shù)組根據(jù)索引可以劃分為關(guān)聯(lián)數(shù)組和索引數(shù)組。關(guān)聯(lián)數(shù)組是指以字符串來做索引值的數(shù)組,索引數(shù)組是指以數(shù)字作為鍵名的數(shù)組。

數(shù)組的聲明方式主要有兩種,分別如下:

1)通過array()函數(shù)聲明數(shù)組。

通過array()聲明一個(gè)數(shù)組,在數(shù)組里面使用key=>value鍵值對的形式定義索引和值,或者不定義數(shù)組的索引,直接在array()輸入元素的值聲明數(shù)組。

2)通過賦值直接給數(shù)組進(jìn)行聲明,不需要使用array()函數(shù)。

例如,$arr[0]=1;$arr[1]=2;

但是需要注意,數(shù)組的下標(biāo)不建議使用整數(shù)的字符串值,例如,$arr[1]和$arr['1']表示的是引用同一個(gè)元素的值;也不建議使用以0開頭的數(shù)字組合,0開頭的數(shù)字組合下標(biāo)會(huì)被強(qiáng)制轉(zhuǎn)換為整數(shù),例如,$arr[01]等價(jià)于$arr[1],而$arr['01']則表示的是引用另外一個(gè)值。

18、1)可以創(chuàng)建.htaccess文件防盜鏈,并且給上傳的圖片加水印聲明版權(quán)。

2)當(dāng)單擊上傳圖片后,上傳按鈕禁止再次被單擊,直到上傳完成后才能再次上傳。

3)圖片的目錄根據(jù)月份再到日進(jìn)行存放。

19、HTTP請求是指從客戶端到服務(wù)器端的請求消息,建立HTTP請求需要經(jīng)歷以下7個(gè)步驟才能請求成功:

1)建立TCP連接。在HTTP開始工作前,Web瀏覽器需先通過網(wǎng)絡(luò)和Web服務(wù)器連接,連接過程主要使用TCP/IP協(xié)議完成。

2)Web瀏覽器向Web服務(wù)器發(fā)送請求命令。一旦建立了TCP連接,Web瀏覽器就會(huì)向Web服務(wù)器發(fā)送請求命令。

3)Web瀏覽器發(fā)送請求頭信息。Web瀏覽器發(fā)送其請求命令后,還要以頭信息的形式向Web服務(wù)器發(fā)送一些信息,瀏覽器最后通過發(fā)送一空白行來通知服務(wù)器它結(jié)束了該頭信息的發(fā)送。

4)Web服務(wù)器應(yīng)答??蛻舳讼蚍?wù)端發(fā)出請求后,服務(wù)端會(huì)給客戶端回送應(yīng)答,例如,HTTP/1.1200OK,應(yīng)答的編碼含義為協(xié)議的版本號和應(yīng)答狀態(tài)碼。

5)Web服務(wù)器發(fā)送應(yīng)答頭信息。服務(wù)器會(huì)隨同應(yīng)答向用戶發(fā)送關(guān)于它自己的數(shù)據(jù)及被請求的文檔。

6)Web服務(wù)器向?yàn)g覽器發(fā)送數(shù)據(jù)。Web服務(wù)器向?yàn)g覽器發(fā)送頭信息后,它會(huì)發(fā)送一個(gè)空白行來表示頭信息的發(fā)送到此結(jié)束,接著,它以Content-Type應(yīng)答頭信息所描述的格式發(fā)送用戶所請求的實(shí)際數(shù)據(jù)。

7)Web服務(wù)器關(guān)閉TCP連接。一般情況下,一旦Web服務(wù)器向?yàn)g覽器發(fā)送了請求數(shù)據(jù),它就要關(guān)閉TCP連接,然后瀏覽器或者服務(wù)器在其頭信息加入了這行代碼:Connection:keep-alive,TCP連接在發(fā)送后將仍然保持打開狀態(tài),于是,瀏覽器可以繼續(xù)通過相同的連接發(fā)送請求。

20、事務(wù)是執(zhí)行一系列的操作完成一項(xiàng)任務(wù),如果存在某個(gè)操作沒有成功,那么認(rèn)為事務(wù)執(zhí)行失敗,此時(shí)發(fā)生回滾事件,撤銷前面的全部操作,進(jìn)而保證數(shù)據(jù)的一致性。為了保證數(shù)據(jù)的一致性,操作會(huì)被暫時(shí)放在緩存中,等所有操作執(zhí)行成功后才提交數(shù)據(jù)庫執(zhí)行。

事務(wù)作為一個(gè)邏輯單元執(zhí)行的一系列操作,具有四大特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability),簡稱為ACID。

(1)原子性

事務(wù)必須是原子工作單元;對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。

(2)一致性

事務(wù)完成時(shí),必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。事務(wù)結(jié)束時(shí),所有的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(例如,B樹索引或雙向鏈表)都必須是正確的。

(3)隔離性

由并發(fā)事務(wù)所做的修改必須與任何其他并發(fā)事務(wù)所做的修改隔離。當(dāng)事務(wù)查看數(shù)據(jù)時(shí),數(shù)據(jù)所處的狀態(tài)要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會(huì)查看中間狀態(tài)的數(shù)據(jù),這稱為可串行性。因?yàn)樗軌蛑匦卵b載起始數(shù)據(jù),并且重播一系列事務(wù),所以數(shù)據(jù)結(jié)束時(shí)的狀態(tài)與原始事務(wù)執(zhí)行的狀態(tài)相同。

(4)持久性

事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的,即使出現(xiàn)系統(tǒng)故障該修改也將一直保持。四、編程題21、根據(jù)題意可知,首先創(chuàng)建一個(gè)首項(xiàng)為0、第二項(xiàng)為1的數(shù)組,然后從數(shù)組第三個(gè)值開始使用公式進(jìn)行計(jì)算把值放入數(shù)組中。

代碼實(shí)現(xiàn)為

functionarr_fb($len){

$arr=array(0,1);

for($i=2;$i<$len;$i++){

$arr[$i]=$arr[$i-1]+$arr[$i-2];

}

return$arr;

}

print_r(arr_fb(10));

程序的運(yùn)行結(jié)果為Array([0]=>0[1]=>1[2]=>1[3]=>2[4]=>3[5]=>5[6]=>8[7]=>13[8]=>21[9]=>34)。

22、可以使用以下5種方法:

1)get_ext1($file_name){

returnstrrchr($file_n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論