欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂盤點2018年P(guān)HP高級開發(fā)工程師面試題及答案匯總

2018-01-10 10:24:28 2945瀏覽

今天扣丁學(xué)堂小編給大家整理一下關(guān)于PHP培訓(xùn)之高級面試題整理及答案匯總,下面我們一起來看一下吧。

1.寫出一個能創(chuàng)建多級目錄的PHP函數(shù)

/**

*創(chuàng)建多級目錄

*@param$pathstring要創(chuàng)建的目錄

*@param$modeint創(chuàng)建目錄的模式,在windows下可忽略

*/

functioncreate_dir($path,$mode=0777)

{

if(is_dir($path)){

#如果目錄已經(jīng)存在,則不創(chuàng)建

echo"該目錄已經(jīng)存在";

}else{

#不存在,創(chuàng)建

if(mkdir($path,$mode,true)){

echo"創(chuàng)建目錄成功";

}else{

echo"創(chuàng)建目錄失敗";

}

}

}

?>

2.寫出smarty模板的特點?

速度快,編譯型,緩存技術(shù),插件機制,強大的表現(xiàn)邏輯

3.打開php.ini中的safe_mode,會影響哪些函數(shù)?至少說出6個

safe_mode,php安全模式,它提供一個基本安全的共享環(huán)境,在一個有多個用戶賬戶存在的php開發(fā)的web服務(wù)器上。當(dāng)安全模式打開的時候,一些函數(shù)將被完全的禁止,而另一些函數(shù)的功能將會受到限制,如:chdir,move_uploaded_file,chgrp,parse_ini_file,chown,rmdir,copy,rename,fopen,require,mkdir,unlink等。

注意,在php5.3以上版本,safe_mode被棄用,在php5.4以上版本,則將此特性完全去除了。

4.抓取遠(yuǎn)程圖片到本地,你會用什么函數(shù)?

file_get_contents或者curl

5.PHP的垃圾收集機制是怎樣的

PHP可以自動進(jìn)行內(nèi)存管理,清除不再需要的對象。

PHP使用了引用計數(shù)(referencecounting)這種單純的垃圾回收(garbagecollection)機制。每個對象都內(nèi)含一個引用計數(shù)器,每個reference連接到對象,計數(shù)器加1。當(dāng)reference離開生存空間或被設(shè)為NULL,計數(shù)器減1。當(dāng)某個對象的引用計數(shù)器為零時,PHP知道你將不再需要使用這個對象,釋放其所占的內(nèi)存空間。

6.請寫一段PHP代碼,確保多個進(jìn)程同時寫入同一個文件成功?核心思路:加鎖

$fp=fopen("lock.txt","w+");

if(flock($fp,LOCK_EX)){

//獲得寫鎖,寫數(shù)據(jù)

fwrite($fp,"writesomething");

//解除鎖定

flock($fp,LOCK_UN);

}else{

echo"fileislocking...";

}

fclose($fp);

?>

7.寫一個函數(shù),盡可能高效的,從一個標(biāo)準(zhǔn)url里取出文件的擴展名?

//方案一

functiongetExt1($url){

$arr=parse_url($url);

//Array([scheme]=>http[host]=>m.dionly.net.cn[path]=>/abc/de/fg.php[query]=>id=1)

$file=basename($arr['path']);

$ext=explode('.',$file);

return$ext[count($ext)-1];

}

//方案二

functiongetExt2($url){

$url=basename($url);

$pos1=strpos($url,'.');

$pos2=strpos($url,'?');

if(strstr($url,'?')){

returnsubstr($url,$pos1+1,$pos2-$pos1-1);

}else{

returnsubstr($url,$pos1);

}

}

$path="http://m.dionly.net.cn/abc/de/fg.php?id=1";

echogetExt1($path);

echo"

";

echogetExt2($path);

?>

相關(guān)題目:使用五種以上方式獲取一個文件的擴展名,要求:dir/upload.image.jpg,找出.jpg或者jpg,必須使用PHP自帶的處理函數(shù)進(jìn)行處理,方法不能明顯重復(fù),可以封裝成函數(shù),比如get_ext1(filename),getext2(file_name)

8.寫一個函數(shù),能夠遍歷一個文件夾下的所有文件和子文件夾。

functionmy_scandir($dir){

$files=array();

if(is_dir($dir)){

if($handle=opendir($dir)){

while(($flie=readdir($handle))!==false){

if($flie!="."&&$file!=".."){

if(is_dir($dir."/".$file)){

$files[$file]=my_scandir($dir."/".$file);

}else{

$files[]=$dir."/".$file;

}

}

}

closedir($handle);

return$files;

}

}

}

?>

[!!!]9.簡述論壇中無限分類的實現(xiàn)原理。(新浪)

創(chuàng)建類別表如下:

CREATETABLEcategory(

cat_idsmallintunsignednotnullauto_incrementprimarykeycomment'類別ID',

cat_nameVARCHAR(30)NOTNULLDEFAULT''COMMENT'類別名稱',

parent_idSMALLINTUNSIGNEDNOTNULLDEFAULT0COMMENT'類別父ID'

)engine=MyISAMcharset=utf8;

編寫一個函數(shù),遞歸遍歷,實現(xiàn)無限分類

functiontree($arr,$pid=0,$level=0){

static$list=array();

foreach($arras$v){

//如果是頂級分類,則將其存到$list中,并以此節(jié)點為根節(jié)點,遍歷其子節(jié)點

if($v['parent_id']==$pid){

$v['level']=$level;

$list[]=$v;

tree($arr,$v['cat_id'],$level+1);

}

}

return$list;

}

?>

10.寫一個函數(shù),算出兩個文件的相對路徑,如a=′/a/b/c/d/e.php′;b='/a/b/12/34/c.php';計算出b相對于a的相對路徑應(yīng)該是../../c/d(新浪)

functionreleative_path($path1,$path2){

$arr1=explode("/",dirname($path1));

$arr2=explode("/",dirname($path2));

for($i=0,$len=count($arr2);$i<$len;$i++){

if($arr1[$i]!=$arr2[$i]){

break;

}

}

//不在同一個根目錄下

if($i==1){

$return_path=array();

}

//在同一個根目錄下

if($i!=1&&$i<$len){

$return_path=array_fill(0,$len-$i,"..");

}

//在同一個目錄下

if($i==$len){

$return_path=array('./');

}

$return_path=array_merge($return_path,array_slice($arr1,$i));

returnimplode('/',$return_path);

}

$a='/a/b/c/d/e.php';

$b='/a/b/12/34/c.php';

$c='/e/b/c/d/f.php';

$d='/a/b/c/d/g.php';

echoreleative_path($a,$b);//結(jié)果是../../c/d

echo"

";

echoreleative_path($a,$c);//結(jié)果是a/b/c/d

echo"

";

echoreleative_path($a,$d);//結(jié)果是./

echo"

";

?>

11.mysql_fetch_row()和mysql_fetch_array()有什么分別?

mysql_fetch_row()把數(shù)據(jù)庫的一列儲存在一個以零為基數(shù)的數(shù)組中,第一欄在數(shù)組的索引0,第二欄在索引1,依此類推。

mysql_fetch_assoc()把數(shù)據(jù)庫的一列儲存在一個關(guān)聯(lián)數(shù)組中,數(shù)組的索引就是字段名稱,例如我的數(shù)據(jù)庫查詢送回“first_name”、“l(fā)ast_name”、“email”三個字段,數(shù)組的索引便是“first_name”、“l(fā)ast_name”和“email”。

mysql_fetch_array()可以同時送回mysql_fetch_row()和mysql_fetch_assoc()的值。

12.有一個網(wǎng)頁地址,比如:http://m.dionly.net.cn/php/,如何得到它的內(nèi)容?

方法1(對于PHP5及更高版本):

$readcontents=fopen("http://m.dionly.net.cn/php/","rb");

$contents=stream_get_contents($readcontents);

fclose($readcontents);

echo$contents;

方法2:

echofile_get_contents("http://m.dionly.net.cn/php/");

13.談?wù)剬vc的認(rèn)識

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

model層負(fù)責(zé)提供數(shù)據(jù),和數(shù)據(jù)庫有關(guān)的操作都交給模型層來處理,view層則提供交互的界面,并輸出數(shù)據(jù),而controller層則負(fù)責(zé)接收請求,并分發(fā)給相應(yīng)的model來處理,然后調(diào)用view層來顯示。

14.WhatdoestheGDlibrarydo?

GD庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。在網(wǎng)站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網(wǎng)站數(shù)據(jù)生成報表。自從PHP4.3.0版本后GD便內(nèi)建在PHP系統(tǒng)中。

15.Whatfunctioncanyouusetoopenafileforreadingandwriting?

A.fget();

B.file_open();

C.fopen();

D.open_file();

答案:C

fget()這不是一個PHP函數(shù),會引致執(zhí)行錯誤。

file_open()這不是一個PHP函數(shù),會引致執(zhí)行錯誤。

fopen()這是正確答案,fopen()可以用來開啟檔案以便讀寫。

open_file()這不是一個PHP函數(shù),會引致執(zhí)行錯誤。

16.Smarty的原理

smarty是一個模板引擎,使用smarty主要是為了實現(xiàn)邏輯和外在內(nèi)容的分離,如果不使用模板的話,通常的做法就是php代碼和html代碼混編。使用了模板之后,則可以將業(yè)務(wù)邏輯都放到php文件中,而負(fù)責(zé)顯示內(nèi)容的模板則放到html文件中。

Smarty在執(zhí)行display方法的時候,讀取模板文件,并進(jìn)行數(shù)據(jù)替換,生成編譯文件,之后每次訪問都會直接訪問編譯文件,讀取編譯文件省去了讀取模板文件,和字符串替換的時間,所以可以更快,編譯文件里時間戳記錄模板文件修改時間,如果模板被修改過就可以檢測到,然后重新編譯(編譯是把靜態(tài)內(nèi)容保存起來,動態(tài)內(nèi)容根據(jù)傳入的參數(shù)不同而不同)。

如果啟用了緩存,則會根據(jù)編譯文件生成緩存文件,在訪問的時候如果有緩存文件并且緩存文件沒有過期,則直接訪問緩存文件。

相關(guān)題目1:能夠使HTML和PHP分離開使用的模板

smarty,phplib等

相關(guān)題目2:您是否用過模板引擎?如果有您用的模板引擎的名字是?

Smarty

17.PHP如何實現(xiàn)頁面跳轉(zhuǎn)

方法一:php函數(shù)跳轉(zhuǎn),缺點,header頭之前不能有輸出,跳轉(zhuǎn)后的程序繼續(xù)執(zhí)行,可用exit中斷執(zhí)行后面的程序。

header("Location:網(wǎng)址");//直接跳轉(zhuǎn)

header("refresh:3;url=http://m.dionly.net.cn/");//三秒后跳轉(zhuǎn)

方法二:利用meta

echo"";

18.PHP可以和sqlserver/oracle等數(shù)據(jù)庫連接嗎?

可以

19.使用哪些工具進(jìn)行版本控制?

SVN或者CVS

相關(guān)題目:您是否用過版本控制軟件?如果有您用的版本控制軟件的名字是?

TortoiseSVN-1.2.6

20.寫出一個正則表達(dá)式,過慮網(wǎng)頁上的所有JS/VBS腳本(即把script標(biāo)記及其內(nèi)容都去掉):

過濾javascript腳本參考:

header("content-type:text/html;charset=utf-8");

$script="以下內(nèi)容不顯示:";

$pattern='/]*?>.*?/si';

echopreg_replace($pattern,"腳本內(nèi)容",$script);//以下內(nèi)容不顯示:腳本內(nèi)容

?>

21.Givenalineoftext$string,howwouldyouwritearegularexpressiontostripalltheHTMLtagsfromit?

方案一,使用PHP內(nèi)建函數(shù)strip_tags()除去HTML標(biāo)簽

方案二,自定義函數(shù),如下:

header("content-type:text/html;charset=utf-8");

functionstrip_html_tags($str){

$pattern='/<("[^"]*"|\'[^\']\*\'|[^>"\'])*>/';

returnpreg_replace($pattern,'',$str);

}

//實例

$html='

ddddd

';

echostrip_html_tags($html);

echo"

";

$html='

bb

aaa

';

echostrip_html_tags($html);

?>

22.請寫一個函數(shù)驗證電子郵件的格式是否正確(要求使用正則)

preg_match('/^[\w\-\.]+@[\w\-]+(\.\w+)+$/',$email);

23.請對POSIX風(fēng)格和兼容Perl風(fēng)格兩種正則表達(dá)式的主要函數(shù)進(jìn)行類比說明

主要區(qū)別有以下三種:

preg_replace()里面的正則可以寫成型如:"/.xxx/"而ereg_replace()里面的正則需寫成型如"xxx"

preg_replace()能操作數(shù)組,而ereg_replace()不可以

在逆向引用用preg_replace()可使用0-99個,而ereg_replace()最多為9個

使用Perl兼容正則表達(dá)式語法的preg_match()函數(shù)通常是比ereg()更快的替代方案。

24.請寫出并說明如何在命令行下運行PHP腳本(寫出兩種方式)同時向PHP腳本傳遞參數(shù)?(騰訊)

首先進(jìn)入php安裝目錄

php-fd:/wamp/www/1.php其中-f參數(shù)指定要執(zhí)行的php文件

php-rphpinfo();其中-r表示直接執(zhí)行php代碼,無需寫開始結(jié)束標(biāo)記

25.使用正則表達(dá)式提取一段標(biāo)識語言(html或xml)代碼段中指定標(biāo)簽的指定屬性值(需考慮屬性值對不規(guī)則的情況,如大小寫不敏感,屬性名值與等號間有空格等)。此處假設(shè)需提取test標(biāo)簽的attr屬性值,請自行構(gòu)建包含該標(biāo)簽的串(騰訊)

編寫如下函數(shù):

header("content-type:text/html;charset=utf-8");

functiongetAttrValue($str,$tagName,$attrName){

$pattern1="/<".$tagName."(\\s+\\w+\s*=\\s*([\\'\\\"]?)([^\\'\\\"]*)(\\2))*\\s+".$attrName."\\s*=\\s*([\\'\\\"]?)([^\\'\\\"]*)(\\5)(\\s+\\w+\\s*=\\s*([\\'\\\"]?)([^\\'\\\"]*)(\\9))*\\s*>/i";

$arr=array();

$re=preg_match($pattern1,$str,$arr);

if($re){

echo"

\$arr[6]={$arr[6]}";

}else{

echo"

沒找到。";

}

}

//示例

$str1="";

getAttrValue($str1,"test","attr");//找test標(biāo)簽中attr屬性的值,結(jié)果為ddd

$str2="";

getAttrValue($str2,"test2","t1");//找test2標(biāo)簽中t1屬性的值,結(jié)果為t1value

?>

26.Whatdoesthefollowingcodedo?Explainwhat'sgoingonthere.date=′08/26/2003′;printeregreplace(“([0?9]+)/([0?9]+)/([0?9]+)”,2/1/3,date);(Yahoo)

這是把一個日期從MM/DD/YYYY的格式轉(zhuǎn)為DD/MM/YYYY格式。

輸出26/08/2003

27.Whatfunctionwouldyouusetoredirectthebrowsertoanewpage?

A.redir()

B.header()

C.location()

D.redirect()

答案:B

redir()這不是一個PHP函數(shù),會引致執(zhí)行錯誤。

header()這個是正確答案,header()函數(shù)發(fā)送頭信息,可以用來使瀏覽器轉(zhuǎn)向到另一個頁面,例如:header("Location:http://www.search-this.com/")。

location()這不是一個PHP函數(shù),會引致執(zhí)行錯誤。

redirect()這不是一個PHP函數(shù),會引致執(zhí)行錯誤。

28.Whenturnedon____________will_________yourscriptwithdifferentvariablesfromHTMLformsandcookies.

A.show_errors,enable

B.show_errors,show

C.register_globals,enhance

D.register_globals,inject

答案:C

29.一個函數(shù)的參數(shù)不能是對變量的引用,除非在php.ini中把____設(shè)為on。

allow_call_time_pass_reference

是否啟用在函數(shù)調(diào)用時強制參數(shù)被按照引用傳遞

30.在HTML語言中,頁面頭部的meta標(biāo)記可以用來輸出文件的編碼格式,以下是一個標(biāo)準(zhǔn)的meta語句,請使用PHP語言寫一個函數(shù),把一個標(biāo)準(zhǔn)HTML頁面???的類似meta標(biāo)記中的charset部分值改為big5。(新浪)

請注意:

(1)需要處理完整的html頁面,即不光此meta語句

(2)忽略大小寫

(3)'和"在此處是可以互換的

(4)'Content-Type'兩側(cè)的引號是可以忽略的,但'text/html;charset=gbk'兩側(cè)的不行

(5)注意處理多余空格

編寫正則表達(dá)式如下:

$reg1="/()/i";

31.PHP中如何判斷一個字符串是否是合法的日期模式:2007-03-1313:13:13。要求代碼不超過5行。functioncheckDateTime($data){

if(date('Y-m-dH:i:s',strtotime($data))==$data){

returntrue;

}else{

returnfalse;

}

}

//示例

$data='2015-06-2013:35:42';

var_dump(checkDateTime($data));//bool(true)

$data='2015-06-3613:35:42';

var_dump(checkDateTime($data));//bool(false)

?>

32.PHP中,如何獲得一個數(shù)組的鍵值?

使用key()可以獲得數(shù)組中當(dāng)前元素的鍵名,使用current()則可以返回當(dāng)前元素的值。

使用array_keys()則可以得到數(shù)組中所有的鍵名。

使用foreach結(jié)構(gòu)foreach($arraskey=>value)可以通過key和value分別獲取鍵名和值。

33.如果模板是用smarty模板。怎樣用section語句來顯示一個名為$data的組。比如:

$data=array(

0=>array('id'=>8,'name'=>'name1'),

1=>array('id'=>10,'name'=>'name2'),

2=>array('id'=>15,'name'=>'name3')

);

寫出在模板頁的代碼?若用foreach語句又要怎樣顯示呢?

用section語句:

<{sectionname=testloop=$datastart=0step=1}>

id:<{$data[test].id}>

name:<{$data[test].name}>

<{sectionelse}>

數(shù)組為空

<{/section}>

用foreach語句:

<{foreachfrom=$dataitem=test}>

id:<{$test.id}>

name:<{$test.name}>

<{foreachelse}>

數(shù)組為空

<{/foreach}>

34.哪個選項會匹配下邊的這個正則表達(dá)式?(/.*xyz\d/)

A.*****xyz

B.*****xyz1

C.******xyz2

D.*xyz

答案:C

35.以下哪個錯誤無法被標(biāo)準(zhǔn)的錯誤控制器獲取?

A.E_WARNING

B.E_USER_ERROR

C.E_PARSE

D.E_NOTICE

答案:B

36.以下哪種錯誤類型無法被自定義的錯誤處理器捕捉到?

A.E_WARNING

B.E_USER_ERROR

C.E_PARSE

D.E_NOTICE

答案:C

37.(^\s)|(\s$)這個正則表達(dá)式作用是:__________;

匹配以0個或多個空白符開頭或者0個或多個空白符結(jié)尾的字符串

38.編寫函數(shù)取得上一月的最后一天

date_default_timezone_set('PRC');

/**

*獲取給定月份的上一月最后一天

*@param$datestring給定日期

*@returnstring上一月最后一天

*/

functionget_last_month_last_day($date=''){

if($date!=''){

$time=strtotime($date);

}else{

$time=time();

}

$day=date('j',$time);//獲取該日期是當(dāng)前月的第幾天

returndate('Y-m-d',strtotime("-{$day}days",$time));

}

//測試

echoget_last_month_last_day();

echo"

";

echoget_last_month_last_day("2013-3-21");

?>

39.在很多時候,我們可以通過apache的主配置文件來設(shè)置對test目錄的訪問權(quán)限控制,如http://IP/test請問如果需設(shè)置test下的一個子目錄的訪問控制權(quán)限,是否可以在主配置文件中修改,如果不可以應(yīng)如何解決。

可以,還可以在需要控制的子目錄下創(chuàng)建.htaccess文件,寫入訪問控制。

40.如果我的網(wǎng)站用的utf-8編碼,為防止亂碼出現(xiàn),都需要注意哪些地方?

從以下幾個方面考慮:

數(shù)據(jù)庫中庫和表都用utf8編碼

php連接mysql,指定數(shù)據(jù)庫編碼為utf8mysql_query(“setnamesutf8”);

php文件指定頭部編碼為utf-8header(“content-type:text/html;charset=utf-8”);

網(wǎng)站下所有文件的編碼為utf8

html文件指定編碼為utf-8

41.在url中用get傳值的時候,若中文出現(xiàn)亂碼,應(yīng)該用哪個函數(shù)對中文進(jìn)行編碼?

urlencode()

42.寫出兩種對變量加密的函數(shù)?

md5(str);sha1(str);

43.如何把2009-9-210:30:25變成unix時間戳?

date_default_timezone_set("PRC");

//將字符串轉(zhuǎn)成Unix時間戳

$unix_time=strtotime("2009-9-210:30:45");

echo$unix_time;

echo"

";

//格式化Unix時間戳為正常時間格式

echodate("Y-m-dH:i:s",$unix_time);

?>

44.如何把一個GB2312格式的字符串裝換成UTF-8格式?

iconv('GB2312','UTF-8','悄悄是別離的笙簫');

?>

45.如果需要原樣輸出用戶輸入的內(nèi)容,在數(shù)據(jù)入庫前,要用哪個函數(shù)處理?

htmlspecialchars或者h(yuǎn)tmlentities

46.寫出五種以上你使用過的PHP的擴展的名稱(提示:常用的PHP擴展)

mb_sring、iconv、curl、GD、XML、socket、MySQL、PDO等

47.了解MVC模式嗎?請寫出三種以上目前PHP流行的MVC框架名稱(不區(qū)分大小寫)

FleaPHP、ZendFramework、CakePHP、Symfony、ThinkPHP、YII、CodeIgniter等

48.php中WEB上傳文件的原理是什么,如何限制上傳文件的大小?

上傳文件的表單使用post方式,并且要在form中添加enctype='multipart/form-data'。

一般可以加上隱藏域:,位置在file域前面。

value的值是上傳文件的客戶端字節(jié)限制??梢员苊庥脩粼诨〞r間等待上傳大文件之后才發(fā)現(xiàn)文件過大上傳失敗的麻煩。

使用file文件域來選擇要上傳的文件,當(dāng)點擊提交按鈕之后,文件會被上傳到服務(wù)器中的臨時目錄,在腳本運行結(jié)束時會被銷毀,所以應(yīng)該在腳本結(jié)束之前,將其移動到服務(wù)器上的某個目錄下,可以通過函數(shù)move_uploaded_file()來移動臨時文件,要獲取臨時文件的信息,使用$_FILES。

限制上傳文件大小的因素有:

客戶端的隱藏域MAX_FILE_SIZE的數(shù)值(可以被繞開)。

服務(wù)器端的upload_max_filesize,post_max_size和memory_limit。這幾項不能夠用腳本來設(shè)置。

自定義文件大小限制邏輯。即使服務(wù)器的限制是能自己決定,也會有需要個別考慮的情況。所以這個限制方式經(jīng)常是必要的。

49.簡述UBBcode的實現(xiàn)原理。(YG)

UBB代碼是HTML的一個變種,通過程序自定義我們的標(biāo)簽,比如“[a]PHP中UBB的使用[/a]”這樣的標(biāo)簽,其實質(zhì)就是查找[a][/a]標(biāo)簽,將其替換成的標(biāo)準(zhǔn)html,說白了,就是將標(biāo)準(zhǔn)的html標(biāo)記通過技術(shù)手段使其簡化,其輸出出來的結(jié)果還是標(biāo)準(zhǔn)的html。

明白了ubb的原理,那么再制作一個簡單的ubb編輯器就不難了,和fck之類的編輯器比較起來,ubb代碼最大的優(yōu)點就是代碼簡單,功能很少,簡單的ubb只需要一個文件,而且ubb標(biāo)簽可以自己來定義,更改起來很方便,在php中就是利用替換函數(shù)就可以將

html進(jìn)行標(biāo)簽化,輸出時進(jìn)行標(biāo)簽的轉(zhuǎn)化。

50.怎么把文件保存到指定目錄?怎么避免上傳文件重名問題?

可以自己設(shè)置上傳文件的保存目錄,與文件名拼湊形成一個文件路徑,使用move_uploaded_file(),就可以完成將文件保存到指定目錄。

可以通過上傳的文件名獲取到文件后綴,然后使用時間戳+隨機數(shù)+文件后綴的方式為文件重新命名,這樣就避免了重名。

51._____函數(shù)能返回腳本里的任意行中調(diào)用的函數(shù)的名稱。該函數(shù)同時還經(jīng)常被用在調(diào)試中,用來判斷錯誤是如何發(fā)生的。(奇矩互動)

debug_print_backtrace()

52.在Smarty模板語法中怎么能遍歷數(shù)組a=array(array(′id′=>0),array(′id′=>1),array(′id′=>2),……)id=>0?10000,怎么判斷當(dāng)id=>500,讓輸出的值在HTML里變?yōu)榧t色?(億郵)設(shè)數(shù)組分配過來的數(shù)組名為ids

{sectionname=temploop=$ids}

{if$ids[temp].id==500}

{$ids[temp].id}

{esle}

{$ids[temp].id}

{/if}

{/section}

53.在Smarty模板語法中如何獲取當(dāng)前時間,并且使用Y-m-dH:i:s的格式輸出?

使用{$smarty.now}來獲取當(dāng)前時間,得到的是unix系統(tǒng)時間戳

使用變量調(diào)節(jié)器進(jìn)行格式化,如下:

{$smarty.now|date_format:“%Y-%m-%d%H:%M:%S”}

54.在Smarty模板語法中如何獲取php的全局環(huán)境變量

$smarty.get.變量#顯示通過get方式傳過來的指定變量的值

$smarty.post.變量#顯示通過post方式傳過來的指定變量的值

$smarty.cookies.變量#顯示通過cookie中指定變量的值

$smarty.server.SERVER_NAME#顯示server變量值,$_SERVER系列變量

$smarty.env.PATH#顯示系統(tǒng)環(huán)境變量值,$_ENV系列變量

$smarty.session.變量#顯示session中指定變量的值

$smarty.request.變量#顯示通過post、get、cookie中指定變量的值

55.在Smarty模板中如何用自定義函數(shù)

使用模板分隔符包含,傳遞參數(shù)則使用HTML屬性的方式,例如:

{html_imagefile="pumpkin.jpg"}

56.列舉出你所知道的php系統(tǒng)函數(shù)庫例如,數(shù)學(xué)函數(shù)庫

mysql,gd,pdo,XML,zip,filesystem,mail等

57.假如讓你來寫一個函數(shù)實現(xiàn)Utf-8轉(zhuǎn)gb2312,那么函數(shù)的名稱應(yīng)該怎么命名?(億郵)

utf8_to_gb2312或者utf8togb2312

58.請描述如下URL重寫規(guī)則的用意。

RewriteEngineon

RewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

RewriteBase/

RewriteRule./index.php[L]

如果REQUEST_FILENAME文件存在,就直接訪問文件,不進(jìn)行下面的rewrite規(guī)則,

如果REQUEST_FILENAME目錄存在,就直接訪問目錄,不進(jìn)行下面的rewrite規(guī)則,

RewriteRule./index.php[L]的意思是把所有的請求都給index.php處理。

59.Warning:Cannotmodifyheaderinformation-headersalreadysentby(outputstartedatD:\src\init.php:7)inD:\src\init.phponline10通常什么情況下php會報該警告信息?

一般是在header、set_cookie以及session_start函數(shù)前面有輸出(包括空格)的情況下,會報該警告信息

以上就是扣丁學(xué)堂盤點2018年P(guān)HP高級開發(fā)工程師面試題及答案匯總的詳細(xì)的介紹,最后想要學(xué)好PHP一定要選擇專業(yè)靠譜的PHP培訓(xùn)機構(gòu),扣丁學(xué)堂PHP培訓(xùn)不僅有專業(yè)的老師和與時俱進(jìn)的課程體系,還有大量的PHP視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)好PHP的小伙伴抓緊時間行動吧??鄱W(xué)堂PHP技術(shù)交流群:374332265。





【關(guān)注微信公眾號獲取更多的學(xué)習(xí)資料】



查看更多關(guān)于“php培訓(xùn)資訊”的相關(guān)文章>>

標(biāo)簽: PHP培訓(xùn) PHP視頻教程 PHP從入門到精通 PHP學(xué)習(xí)路線圖 PHP開發(fā)工程師

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部