天天看點

PHP新手面試題(未完)

PHP新手 面試題總100分

簡述題(50分)

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

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

2、echo(),print(),print_r()的差別(3分)

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

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

print_r可以列印出複雜類型變量的值(如數組,對象)  

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

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

smarty,Heyes Template Class等

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

VS Server on Apache作服務端,WinCVS作用戶端;Subversion on Apache/DAV 做服務端,TortoiseSVN做用戶端,或者Subclipse做用戶端.

6、如何實作字元串翻轉?(3分)

strrev()

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

7、優化 MYSQL資料庫的 方法。(4分,多寫多得)

(1).選取最适用的字段屬性,應該盡量把字段設定為NOT NULL,這樣在将來執行查詢的時候,資料庫不用去比較NULL值。

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

(3).使用聯合(UNION)來代替手動建立的臨時表

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

(5).使用事務和外鍵

8、PHP的意思(送1分)

Hypertext Preprocessor

9、MYSQL取得目前時間的函數是?,格式化日期的函數是(2分)

now(), DATE_FORMAT(date,format)

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

mb_substr()

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

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

TortoiseSVN-1.2.6 svn-1.2.3

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

smarty

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

14、對于大流量的網站,您采用什麼樣的方法來解決通路量問題?(4分)

首先,确認伺服器硬體是否足夠支援目前的流量

其次,優化資料庫通路。

第三,禁止外部的盜鍊。

第四,控制大檔案的下載下傳。

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

第六,使用流量分析統計軟體。

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

15、用PHP寫出顯示用戶端IP與伺服器IP的代碼1分)

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;

}

16、語句include和require的差別是什麼?為避免多次包含同一檔案,可用(?)語句代替它們? (2分)

require()和include()除了怎樣處理失敗之外在各方面都完全一樣。include()産生一個警告而require()則導緻一個緻命錯誤。

換句話說,如果你想在丢失檔案時停止處理頁面,用require()。include()  就不是這樣,腳本會繼續運作。

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

代替用

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、有一個網頁位址, 比如PHP開發資源網首頁: http://www.phpres.com/index.html,如何得到它的内容?($1分)

file_get_contents($url)

19、在HTTP 1.0中,狀态碼401的含義是(?);如果傳回“找不到檔案”的提示,則可用 header 函數,其語句為(?);(2分)

未授權(Unauthorized)

Header("http/1.0 403 Forbidden");

12、在PHP中,heredoc是一種特殊的字元串,它的結束标志必須?(1分)

跟起始的一樣,且結束标志前也要一個換行,後面加上分号

13、談談asp,php,jsp的優缺點(1分)

14、談談對mvc的認識(1分)

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

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

16. 請說明php中傳值與傳引用的差別。什麼時候傳值什麼時候傳引用?(2分)

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

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

19. 簡述如何得到目前執行腳本路徑,包括所得到參數。(2分)

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

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

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

22、JS的轉向函數是?怎麼引入一個外部JS檔案?(2分)

23、foo()和@foo()之間有什麼差別?(1分)

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

25、如何執行個體化一個名為”myclass”的 對象?(1分)

26、你如何通路和設定一個類的屬性? (2分)

27、mysql_fetch_row() 和mysql_fetch_array之間有什麼差別? (1分)

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

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

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

30、下面哪個函數可以打開一個檔案,以對檔案進行讀和寫操作?(1分)

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

31、下面哪個選項沒有将 john 添加到users 數組中? (1分)

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

    (b) array_add($users,’john’);

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

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

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

    <?php

      $num = 10;

      function multiply(){

        $num = $num * 10;

      }

      multiply();

      echo $num;

    ?>

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

表名User

Name Tel Content Date

張三 13333663366 大專畢業 2006-10-11

張三 13612312331 大學畢業 2006-10-15

張四 021-55665566 中專畢業 2006-10-15

請根據上面的題目完成 代碼:

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

@mysql_select_db("DB",$mysql_db);

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

class test{

   function Get_test($num){

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

      return $num;

   }

}

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

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

   表名User

   Name Tel Content  Date

   張三 13333663366  大專畢業 2006-10-11

   張三 13612312331  大學畢業 2006-10-15

   張四 021-55665566 中專畢業 2006-10-15

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

  (b) 請用sql語句把張三的時間更新成為目前系統時間

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

36、請寫出資料類型(int char varchar datetime text)的意思; 請問varchar和char有什麼差別(2分)

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

38、寫出以下程式的輸出結果 (1分)

   <?

    $b=201;

    $c=40;

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

    echo $a;

   ?>

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

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

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

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

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

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

44、PHP可以和sql server/oracle等資料庫連接配接嗎?(1分)

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

46、請寫出php5的構造函數和析構函數(2分)

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

47、以下請用PHPMYADMIN完成

(一)建立新聞釋出系統,表名為message有如下字段 (3分)

id 文章id

title 文章标題

content 文章内容

category_id 文章分類id

hits 點選量

(二)同樣上述新聞釋出系統:表comment記錄使用者回複内容,字段如下 (4分)

comment_id 回複id

id 文章id,關聯message表中的id

comment_content 回複内容

現通過查詢資料庫需要得到以下格式的文章标題清單,并按照回複數量排序,回複最高的排在最前面

文章id 文章标題 點選量 回複數量

用一個SQL語句完成上述查詢,如果文章沒有回複則回複數量顯示為0

(三)上述内容管理系統,表category儲存分類資訊,字段如下 (3分)

category_id int(4) not null auto_increment;

categroy_name varchar(40) not null;

使用者輸入文章時,通過選擇下拉菜單標明文章分類

寫出如何實作這個下拉菜單