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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

某知名互聯網下載服務商PHP工程師面試筆試真題及答案一、選擇題1、PHP是一種______的語言。

A.編譯型

B.解釋型

C.兩者都是

D.兩者都不是

2、以下關于B/S構架的描述中,正確的是______

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

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

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

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

3、以下程序的運行結果是______

<?php

$array='0123456789ABCDEFG';

$s=";

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

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

}

echo$s;

?>

A.50個隨機字符組成的字符串

B.49個隨機字符組成的字符串

C.49個相同字符組成的字符串,因為沒有初始化隨機數生成器

D.49個字母“G”組成的字符串

4、如下代碼:

<?php

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

?>

不能夠正確得到結果'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);該語句會匹配和替換出什么樣的$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、下列有關繼承的說法中,正確的是______

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

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

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

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

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

A.轉到指定的url

B.引用js文件

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

D.提示下載文件

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

A.errorInfo()

B.bindParam()

C.exec()

D.prepare()

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

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、以下程序的運行結果為______

<?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、假設有一個名為'index.php'的文件的路徑為c:/apache/htdocs/phptutor/index.php,那么basename($_SERVER['PHP_SELF'])的返回值為______。

13、有關獲取上傳文件的信息的預定義數據變量的是______。

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

15、PHP的Session擴展默認將Session數據存儲在______。

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

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

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

①圖片被盜用;②圖片重復上傳。圖片上傳保存目錄如何設置?

19、什么是HTTP請求?

20、數據庫中的事務是什么?它有什么特性?

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

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

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

寫出滿足條件的SQL語句,其中user表中的部分數據如下:

UserName

Tel

Content

Date

張三

大專畢業(yè)

2016-10-11

張一

本科畢業(yè)

2016-10-15

張四

中專畢業(yè)

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

答案:

一、選擇題

1、B[解析]PHP是一種解釋型語言,因為其底層是由C語言編寫的,所以PHP代碼需要編譯為opcode之后再交由Zend引擎執(zhí)行,Zend引擎將這些PHP指令轉變成C語言指令,而C語言指令又會轉變成匯編語言,最后匯編語言將根據處理器的規(guī)則轉變成機器碼執(zhí)行。

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

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

對于選項A,用戶只需要通過瀏覽器訪問服務端的代碼,就可以瀏覽操作網頁,無須安裝客戶端,需安裝客戶端的是C/S架構。選項A錯誤。

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

對于選項C,B/S架構下的軟件需要安裝瀏覽器,且計算機能請求遠端的服務器才能使用該軟件。選項C正確。

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

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

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

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

對于選項A,在字符串中用{}包括變量可以告訴編譯器花括號內是一個變量,選項A是可以直接把yellow輸出的,選項A錯誤。

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

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

對于選項D,雙引號包括的數組鍵名不用加單引號,否則編譯器會認為單引號也是鍵名的一部分,所以$fruits[banana]沒有單引號是正確的。選項D錯誤。

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

使用preg_replace()函數正則匹配時不區(qū)分字符串的大小進行匹配。選項A正確,選項B錯誤。

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

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

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

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

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

errorInfo:從數據庫返回一個含有錯誤信息的數組,如果有的話。

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

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

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

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

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

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

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

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

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

17、數組是一個特殊的變量,它可以同時保存一個或一組值的變量。數組根據索引可以劃分為關聯數組和索引數組。關聯數組是指以字符串來做索引值的數組,索引數組是指以數字作為鍵名的數組。

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

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

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

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

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

但是需要注意,數組的下標不建議使用整數的字符串值,例如,$arr[1]和$arr['1']表示的是引用同一個元素的值;也不建議使用以0開頭的數字組合,0開頭的數字組合下標會被強制轉換為整數,例如,$arr[01]等價于$arr[1],而$arr['01']則表示的是引用另外一個值。

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

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

3)圖片的目錄根據月份再到日進行存放。

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

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

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

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

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

5)Web服務器發(fā)送應答頭信息。服務器會隨同應答向用戶發(fā)送關于它自己的數據及被請求的文檔。

6)Web服務器向瀏覽器發(fā)送數據。Web服務器向瀏覽器發(fā)送頭信息后,它會發(fā)送一個空白行來表示頭信息的發(fā)送到此結束,接著,它以Content-Type應答頭信息所描述的格式發(fā)送用戶所請求的實際數據。

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

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

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

(1)原子性

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

(2)一致性

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

(3)隔離性

由并發(fā)事務所做的修改必須與任何其他并發(fā)事務所做的修改隔離。當事務查看數據時,數據所處的狀態(tài)要么是另一并發(fā)事務修改它之前的狀態(tài),要么是另一事務修改它之后的狀態(tài),事務不會查看中間狀態(tài)的數據,這稱為可串行性。因為它能夠重新裝載起始數據,并且重播一系列事務,所以數據結束時的狀態(tài)與原始事務執(zhí)行的狀態(tài)相同。

(4)持久性

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

代碼實現為

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));

程序的運行結果為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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論