亚洲一区亚洲二区亚洲三区,国产成人高清在线,久久久精品成人免费看,999久久久免费精品国产牛牛,青草视频在线观看完整版,狠狠夜色午夜久久综合热91,日韩精品视频在线免费观看

php經(jīng)典面試題

學(xué)人智庫 時間:2018-01-13 我要投稿
【www.ishadingyu.com - 學(xué)人智庫】

1、用PHP打印出前一天的時間格式是2009-02-10 22:21:21(2分)

echo date('Y-m-d H:i:s', strtotime('-1 day'));

或者

$yesterday = time() - (24 * 60 * 60);

echo 'today:'.date('Y-m-d H:i:s')."n";

echo 'yesterday:'. date('Y-m-d H:i:s', $yesterday)."n";

2、echo(),print(),print_r()的區(qū)別(3分)

echo是PHP語句, print和print_r是函數(shù),語句沒有返回值,函數(shù)可以有返回值(即便沒有用)

print只能打印出簡單類型變量的值(如int,string)

print_r可以打印出復(fù)雜類型變量的值(如數(shù)組,對象)

echo -- 輸出一個或者多個字符串

3、能夠使HTML和PHP分離開使用的模板(1分)

smarty,Heyes Template Class等

5、使用哪些工具進行版本控制?(1分)

CVS和SVN,SVN號稱下一代CVS,功能強大,不過CVS是老牌,市占率很高.我一直用SVN,題目是問用什么工具呃,這個可能需要這么回答:CVS Server on Apache作服務(wù)端,WinCVS作客戶端;Subversion on Apache/DAV 做服務(wù)端,TortoiseSVN做客戶端,或者Subclipse做客戶端.

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

strrev()

或者

$str = "abcdefg";

function strrevv($str)

{

$len=strlen($str);

$newstr = '';

for($i=$len;$i>=0;$i--)

{

$newstr .= $str{$i};

}

return $newstr;

}

$showstr = strrevv($str);

echo $showstr."

";

---------------------------------------------------------------

7、優(yōu)化MYSQL數(shù)據(jù)庫的方法。(4分,多寫多得)

(1).選取最適用的字段屬性,應(yīng)該盡量把字段設(shè)置為NOT NULL,這樣在將來執(zhí)行查詢的時候,數(shù)據(jù)庫不用去比較NULL值。

(2).使用連接(JOIN)來代替子查詢(Sub-Queries)

(3).使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時表

(4).盡量少使用 LIKE 關(guān)鍵字和通配符

(5).使用事務(wù)和外鍵

或者

(1).數(shù)據(jù)庫設(shè)計方面,這是DBA和Architect的責(zé)任,設(shè)計結(jié)構(gòu)良好的數(shù)據(jù)庫,必要的時候,去正規(guī)化(英文是這個:denormalize,中文翻譯成啥我不知道),允許部分數(shù)據(jù)冗余,避免JOIN操作,以提高查詢效率

(2).系統(tǒng)架構(gòu)設(shè)計方面,表散列,把海量數(shù)據(jù)散列到幾個不同的表里面.快慢表,快表只留最新數(shù)據(jù),慢表是歷史存檔.集群,主服務(wù)器Read & write,從服務(wù)器read only,或者N臺服務(wù)器,各機器互為Master

(3).(1)和(2)超越PHP Programmer的要求了,會更好,不會沒關(guān)系.檢查有沒有少加索引

(4).寫高效的SQL語句,看看有沒有寫低效的SQL語句,比如生成笛卡爾積的全連接啊,大量的Group By和order by,沒有l(wèi)imit等等.必要的時候,把數(shù)據(jù)庫邏輯封裝到DBMS端的存儲過程里面.緩存查詢結(jié)果,explain每一個sql語句

(5).所得皆必須,只從數(shù)據(jù)庫取必需的數(shù)據(jù),比如查詢某篇文章的評論數(shù),select count(*) ... where article_id = 就可以了,不要先select * ... where article_id = 然后msql_num_rows.只傳送必須的SQL語句,比如修改文章的時候,如果用戶只修改了標(biāo)題,那就... set title = where article_id = 不要set content = (大文本)

(6).必要的時候用不同的存儲引擎.比如InnoDB可以減少死鎖.HEAP可以提高一個數(shù)量級的查詢速度

8、PHP的意思(送1分)

Hypertext Preprocessor

9、MYSQL取得當(dāng)前時間的函數(shù)是?,格式化日期的函數(shù)是(2分)

now(), DATE_FORMAT(date,format)

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

mb_substr()

---------------------------------------------------------------

11、您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?(1分)

TortoiseSVN-1.2.6 svn-1.2.3

12、您是否用過模板引擎? 如果有您用的模板引擎的名字是?(1分)

smarty

13、請簡單闡述您最得意的開發(fā)之作(4分)

這個自己想,因為你不再是菜鳥,每個人都有不同的思路,思路也會隨之自己的知識而改變……

14、對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?(4分)

首先,確認服務(wù)器硬件是否足夠支持當(dāng)前的流量

其次,優(yōu)化數(shù)據(jù)庫訪問。

第三,禁止外部的盜鏈。

第四,控制大文件的下載。

第五,使用不同主機分流主要流量

第六,使用流量分析統(tǒng)計軟件。

-----------------------------------------------------------------

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

//顯示客戶端I

function get_client_ip() {#

if(getenv('HTTP_CLIENT_IP')) {

$client_ip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR')) {

$client_ip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR')) {

$client_ip = getenv('REMOTE_ADDR');

} else {

$client_ip = $HTTP_SERVER_VAR['REMOTE_ADDR'];

}

return $client_ip;

}

//服務(wù)器IP

function get_server_ip(){

if (isset($_SERVER))

{

if($_SERVER['SERVER_ADDR']) $huoqu_ip=$_SERVER['SERVER_ADDR'];

else $huoqu_ip=$_SERVER['LOCAL_ADDR'];

}

else

{

$huoqu_ip=getenv('SERVER_ADDR');

}

return $huoqu_ip;

}

16、語句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語句代替它們? (2分)

require()和include()除了怎樣處理失敗之外在各方面都完全一樣。include()產(chǎn)生一個警告而require()則導(dǎo)致一個致命錯誤。

換句話說,如果你想在丟失文件時停止處理頁面,用require()。include() 就不是這樣,腳本會繼續(xù)運行。

require()無論如何都會包含文件,而include()可以有選擇地包含.www.

代替用

include_once

require_once

17、如何修改SESSION的生存時間(1分).(沒有測試)

$savePath = "./session_save_dir/";

$lifeTime = 24 * 3600;

session_save_path($savePath);

session_set_cookie_params($lifeTime);

session_start();

18、有一個網(wǎng)頁地址, 比如PHPma主頁: http://www.phpma.com,如何得到它的內(nèi)容?($1分)

file_get_contents($url)

19、在HTTP 1.0中,狀態(tài)碼401的含義是(?);如果返回“找不到文件”的提示,則可用 header 函數(shù),其語句為(?);(2分)

未授權(quán)(Unauthorized)

Header("http/1.0 403 Forbidden");

經(jīng)典面試題(PHP基礎(chǔ)型II)附答案來源:本站編輯 作者:phpma 時間:2009-02-13 Tag:PHP 經(jīng)典面試題 (基礎(chǔ)型II) 附答案 點擊: 44 求職與招聘 往往少不了面試與筆試,作為一個php程序員、多多少少都會有類似的經(jīng)歷……以下是本人收集并整理的PHP面試題目,希望對同行們有所幫助,找到一份合適的php開發(fā)工作!(共三節(jié))

以下是面試的題目(一), 下一篇:經(jīng)典面試題(PHP基礎(chǔ)型III)附答案 PHP已經(jīng)賦予答案:

12、在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須?(1分)

在大部分語言里,雙引號是字符串,單引號是字符。但是在PHP里,字符串的表現(xiàn)形式有3種。即:

單引號

雙引號

定界符(heredoc syntax)

看見了吧,單引號居然可以用來表示字符串。那么如果我想表示單引號怎么辦?和大多數(shù)語言一樣,使用轉(zhuǎn)義符號吧。即反斜線"".那么使用單引號和雙引號有什么區(qū)別呢?我的觀點是沒有多大區(qū)別。唯一的區(qū)別就是雙引號可以應(yīng)用更多的轉(zhuǎn)義符。

讓我們定界符吧。它的語法是"<<<"。用法是在其后提供一個標(biāo)識符,然后在標(biāo)識符后提供字符串,再在字符串后提供此標(biāo)識符來結(jié)尾。例如:

$str = <<<eod< p="">

Hello, this is an example for HEREDOC Syntax.

Please attention to it.

EOD;

echo $str;

?>注意,這里的提供的標(biāo)志符是EOD,中間的是字符串。

<<<eod這個開頭并沒有分號< p="">

結(jié)束標(biāo)志必須頂格寫,并且要有分號結(jié)束

13、談?wù)刟sp,php,jsp的優(yōu)缺點(1分)--(具體請自己搜索)

14、談?wù)剬vc的認識(1分)

MVC(Model/View/Controller)模式包括三類對象。Model是應(yīng)用對象,View是它在屏幕上的表示,

Controller定義用戶界面對用戶輸入的響應(yīng)方式。

模型-視圖-控制器(MVC)是80年代Smalltalk-80出現(xiàn)的一種軟件設(shè)計模式,現(xiàn)在已經(jīng)被廣泛的使用。

1)模型(Model)

模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù),或者業(yè)務(wù)邏輯.

2)視圖(View)

視圖是應(yīng)用程序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。

3)控制器(controller)

控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新model對象狀態(tài)。

-------------------------------------------------------------------

15、寫出發(fā)貼數(shù)最多的十個人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)

select members.username

from members

order by posts DESC

limit 10

16. 請說明php中傳值與傳引用的區(qū)別。什么時候傳值什么時候傳引用?(2分)

按值傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部都會被忽略

按引用傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部也能反映出這些修改 PHPma

優(yōu)缺點:按值傳遞時,php必須復(fù)制值。特別是對于大型的字符串和對象來說,這將會是一個代價很大的操作。

按引用傳遞則不需要復(fù)制值,對于性能提高很有好處。

17. 在PHP中error_reporting這個函數(shù)有什么作用? (1分)

用來配置錯誤信息回報的等級

18. 請寫一個函數(shù)驗證電子郵件的格式是否正確 (2分)

//if the email address is valid, return true,else return false

function validateEmail($email)

{

if(eregi('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$',$email) ){

return true;

}else{

return false;

}

}

19. 簡述如何得到當(dāng)前執(zhí)行腳本路徑,包括所得到參數(shù)。(2分)

echo $_SERVER['SCRIPT_FILENAME']."?".$_SERVER['QUERY_STRING'];

20.如何修改SESSION的生存時間. (1分)

setcookie()

session_set_cookie_params($lifeTime)

--------------------------------------------------------------------

21、JS表單彈出對話框函數(shù)是?獲得輸入焦點函數(shù)是? (2分)

alert(),prompt(),confirm()

focus()

22、JS的轉(zhuǎn)向函數(shù)是?怎么引入一個外部JS文件?(2分)

window.location.href

23、foo()和@foo()之間有什么區(qū)別?(1分)

PHP 支持一個錯誤控制運算符:@。當(dāng)將其放置在一個 PHP 表達式之前,該表達式可能產(chǎn)生的任何錯誤信息都被忽略掉。

注意: @ 運算符只對表達式有效。對新手來說一個簡單的規(guī)則就是:如果能從某處得到值,就能在它前面加上 @ 運算符。例如,可以把它放在變量,函數(shù)和include()調(diào)用,常量,等等之前。不能把它放在函數(shù)或類的定義之前,也不能用于條件結(jié)構(gòu)例如 if 和 foreach 等。

24、如何聲明一個名為”myclass”的沒有方法和屬性的類? (1分)

class myclass{};

25、如何實例化一個名為”myclass”的對象?(1分)

$newmyclass = new myclass();

26、你如何訪問和設(shè)置一個類的屬性? (2分)

通過-〉

$newmyclass = new myclass();

$temp=$newmyclass->testvalue;

$newmyclass->testvalue="a";

27、mysql_fetch_row() 和mysql_fetch_array之間有什么區(qū)別? (1分)

mysql_fetch_row -- 從結(jié)果集中取得一行作為枚舉數(shù)組

mysql_fetch_array -- 從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字數(shù)組,或二者兼有

--------------------------------------------------------------------

28、GD庫是做什么用的? (1分)

GD庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。

在網(wǎng)站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網(wǎng)站數(shù)據(jù)生成報表。

29、指出一些在PHP輸入一段HTML代碼的辦法。(1分)

print("

");

echo "

";

30、下面哪個函數(shù)可以打開一個文件,以對文件進行讀和寫操作?(1分)(c)

(a) fget() (b) file_open() (c) fopen() (d) open_file()

31、下面哪個選項沒有將 john 添加到users 數(shù)組中? (1分) (b)(c)(d)

(a) $users[] = ‘john’;

(b) array_add($users,’john’);//這個選項不敢確定,但是測試著沒有這個函數(shù)

(c) array_push($users,‘john’);

(d) $users ||= ‘john’;

32、下面的程序會輸入是否?(1分)

$num = 10;

function multiply(){

$num = $num * 10;

}

multiply();

echo $num;

?>

否,局部變量

33、使用php寫一段簡單查詢,查出所有姓名為“張三”的內(nèi)容并打印出來 (2分)

表名User

Name Tel Content Date

張三 13333663366 大專畢業(yè) 2006-10-11

張三 13612312331 本科畢業(yè) 2006-10-15

張四 021-55665566 中專畢業(yè) 2006-10-15

請根據(jù)上面的題目完成代碼:

$mysql_db=mysql_connect("local","root","pass");

@mysql_select_db("DB",$mysql_db);

$result=mysql_query("select * from User where Name='張三'");

while($row=mysql_fetch_array($result))

{

echo $row['Name'].$row['Tel'].$row['Content'].$row['Date'];

echo "

";

}

34、如何使用下面的類,并解釋下面什么意思?(3)

class test{

function Get_test($num){

$num=md5(md5($num)."En");

return $num;

}

}

雙重md5加密

$testObject = new test();

$encryption = $testObject->Get_test("xiaotian_ls");

經(jīng)典面試題(PHP基礎(chǔ)型III)PHP來源:本站編輯 作者:phpma 時間:2009-02-13 Tag:經(jīng)典面試題(PHP基礎(chǔ)型III)PHP 點擊: 31 求職與招聘 往往少不了面試與筆試,作為一個php程序員、多多少少都會有類似的經(jīng)歷……以下是本人收集并整理的PHP面試題目,希望對同行們有所幫助,找到一份合適的php開發(fā)工作!(共三節(jié))

以下是經(jīng)典面試題(PHP基礎(chǔ)型III)附答案 PHP已經(jīng)賦予答案:

35、寫出 SQL語句的格式 : 插入 ,更新 ,刪除 (4分)

表名User

Name Tel Content Date

張三 13333663366 大專畢業(yè) 2006-10-11

張三 13612312331 本科畢業(yè) 2006-10-15

張四 021-55665566 中專畢業(yè) 2006-10-15

(a) 有一新記錄(小王 13254748547 高中畢業(yè) 2007-05-06)請用SQL語句新增至表中

INSERT INTO User('Name','Tel','Content','Date') VALUES('小王','13254748547','高中畢業(yè)','2007-05-06')

(b) 請用sql語句把張三的時間更新成為當(dāng)前系統(tǒng)時間

UPDATE User SET Date=DATE_FORMAT(NOW(),'%Y-%m-%d') WHERE Name='張三'

(c) 請寫出刪除名為張四的全部記錄

DELETE FROM User WHERE Name='張四'

36、請寫出數(shù)據(jù)類型(int char varchar datetime text)的意思; 請問varchar和char有什么區(qū)別(2分)

char 固定長度的字符,不足的長度用空格補上;varchar好象沒有這個類型,

37、MySQ自增類型(通常為表ID字段)必需將其設(shè)為(?)字段(1分)

38、寫出以下程序的輸出結(jié)果 (1分)

$b=201;

$c=40;

$a=$b>$c?4:5;

echo $a;

?>

答案:4

39、檢測一個變量是否有設(shè)置的函數(shù)是否?是否為空的函數(shù)是?(2分)

isset();empty();

-----------------------------------------------------------------------------

40、取得查詢結(jié)果集總數(shù)的函數(shù)是?(1分)

mysql_fetch_array();

41、$arr = array('james', 'tom', 'symfony'); 請打印出第一個元素的值 (1分)

echo $arr['0'];

42、請將41題的數(shù)組的值用','號分隔并合并成字串輸出(1分)

$arr_im = implode(",",$arr);

print_r($arr_im);

43、$a = 'abcdef'; 請取出$a的值并打印出第一個字母(1分)

$a = 'abcdef';

echo $a;

$a_exp = substr($a,0,1);

echo "

";

echo $a_exp;

44、PHP可以和sql server/oracle等數(shù)據(jù)庫連接嗎?(1分)

當(dāng)然可以

45、請寫出PHP5權(quán)限控制修飾符(3分)

PHP5引入了訪問修飾,被放在屬性和方法聲明的前面用以控制它們的可見性。PHP5中支持以下三種不同的訪問修飾:

1、默認的是public(公共),即當(dāng)你沒有為屬性和方法指定訪問修飾時就默認為public的。而這些public的項目在類內(nèi)類外都可以訪問。

2、private(私有)訪問修飾,意味著被修飾的項只能在類中被訪問。如果你沒使用__get()和__set(),就最好給每個屬性都加上private修飾。也可以給方法加private修飾,例如一些只在類中才用到的函數(shù)。private修飾的項不能被繼承(更多詳細內(nèi)容會在本章后續(xù)部分提到)。

3、protected(保護)修飾的項能在類及其子類中訪問。同樣更多詳細內(nèi)容會在本章后續(xù)部分提到。現(xiàn)在暫時可以把protected看成界于public和private之間的修飾。

46、請寫出php5的構(gòu)造函數(shù)和析構(gòu)函數(shù)(2分)

如果你在一個類中聲明一個函數(shù),命名為__construct,這個函數(shù)將被當(dāng)成是一個構(gòu)造函數(shù)并在建立一個對象實例時被執(zhí)行. 清楚地說,__是兩個下劃線. 就像其它任何函數(shù)一樣,構(gòu)造函數(shù)可能有參數(shù)或者默認值. 你可以定義一個類來建立一個對象并將其屬性全放在一個語句(statement)中.

你也可以定義一個名為__destruct的函數(shù),PHP將在對象被銷毀前調(diào)用這個函數(shù). 它稱為析構(gòu)函數(shù).

------------------------------------------------------------------------------

47、以下請用PHPMYADMIN完成--(沒有測試)

(一)創(chuàng)建新聞發(fā)布系統(tǒng),表名為message有如下字段 (3分)

id 文章id

title 文章標(biāo)題

content 文章內(nèi)容

category_id 文章分類id

hits 點擊量

(二)同樣上述新聞發(fā)布系統(tǒng):表comment記錄用戶回復(fù)內(nèi)容,字段如下 (4分)

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

select message.id,message.title, message.hits sum(select count(0) from comment where message.id=comment.id) as comsums from message comment order by comsums;

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

category_id int(4) not null auto_increment;

categroy_name var40) not null;

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

寫出如何實現(xiàn)這個下拉菜單

//以下使用的adodb

$cnn =& NewADOConnection('mysql');

$cnn -> Connect($db_hostspec, $db_username, $db_password, $db_database);

$cnn -> SetFetchMode(ADODB_FETCH_ASSOC);

if (!$cnn) message("無法連接數(shù)據(jù)庫 $db_database");

$sql = "SELECT * FROM `category` WHERE 1;

$rst =& $cnn -> Execute($sql);

if (!$rst) die($cnn -> ErrorMsg());

$arr_categroy = $rst -> GetArray();

[php經(jīng)典面試題]