首頁 >後端開發 >php教程 >php面試題集及答案

php面試題集及答案

WBOY
WBOY原創
2016-07-25 08:53:451411瀏覽
  1. $a = date("y-m-d h:i:s", strtotime("-1 day"));
  2. print_r($a);
複製程式碼

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

  1. echo 和print不是函數,是語言結構
  2. int print(string $arg), 只有一個參數
  3. echo arg1,arg2 ; 可以輸出多個參數,回傳void
  4. echo和print只能印出string,不能印出結構
  5. print_r能印出結構
  6. $arr = array("key"=> "value");
  7. print_r($arr);
複製程式碼

3.能夠使html和php分離開使用的模板(1分) smarty,phplib 4.使用哪些工具進行版本控制?(1分) svn,git,cvs 5.如何實現字串翻轉?(3分) 英文: strrev($a) 中文或其他文字: 中文:gb2312, 代碼是使用gb2312編碼

  1. function reverse($str)
  2. {
  3. $ret = "";
  4. len=mbstrwidth( str,"gb2312");
  5. for(i=0;i {
  6. arr[]=mbsubstr(str, $i, 1, "gb2312");
  7. }
  8. return implode("", array_reverse($arr));
  9. }
  10. print_r(reverse("你好"));
複製程式碼

複製程式碼
  1. 複製程式碼
  2. 6.優化mysql資料庫的方法。 (4分,多寫多得) 語句方面: 1 使用索引,增加查詢效率 2 最佳化查詢語句,提高索引命中率 資料庫涉及方面: 1 建構分庫分錶,提升資料庫的儲存與擴充能力 2 根據需要使用不同的儲存引擎 7.php的意思(送1分) 超級文字預處理語言 hypertext preprocessor 8.mysql取得目前時間的函數是?,格式化日期的函數是(2分)

current_timestamp()date_format()

select date_format("2011-11-21 10:10:10" %m-%d");
  1. 複製程式碼
  2. 9.實作中文字串截取無亂碼的方法。 (3分) mb_substr($str, 1, 1, "gb2312"); 10.您是否用過版本控制軟體? 如果有您用的版本控制軟體的名字是?(1分) svn git 11、您是否用過模板引擎? 如果有您用的模板引擎的名字是?(1分) smarty 12、請簡單闡述您最得意的開發(4分) xxx 13.對於大流量的網站,您採用什麼樣的方法來解決訪問量問題?(4分) 1 有效使用緩存,增加緩存命中率 2 使用負載平衡 3 對靜態檔案使用cdn進行儲存與加速 4 想法減少資料庫的使用 5 看出現統計的瓶頸在哪裡 14.用php寫出顯示客戶端ip與伺服器ip的程式碼1分) $_server["remote_addr"] $_server["server_addr"] 15.語句include和require的差別是什麼?為避免多次包含同一文件,可用(?)語句代替它們? (2分) 在失敗的時候: include產生一個warning,而require產生直接產生錯誤中斷 require在運行前載入 include在運行時載入 require_once include_once 16、如何修改session的生存時間(1分). session_set_cookie_params 17.有一個網頁地址, 例如腳本學堂主頁: http://bbs.it-home.org/index.html,如何得到它的內容?($1分) file_get_contents curl 18.在http 1.0中,狀態碼401的意思是(?);如果傳回「找不到檔案」的提示,則可用 header 函數,其語句為(?);(2分) 未授權 header("http/1.0 404 not found"); fast cgi中: header("status: 404 not found"); 19.在php中,heredoc是一種特殊的字串,它的結束標誌必須?(1分) 成對出現 $a =
$str = "jianfeng@126.com";regex="([a?z0?9.?] )@([da ?z.?] ).([a?z.]2,6)" ; //正規return preg_match(regex,str)複製程式碼

26. 簡述如何得到目前執行腳本路徑,包括所得到參數。 (2分) $argc --取得參數數量 $argv --取得參數列表 27.如何修改session的生存時間. (1分) session_set_cookie_params 28.js表單彈出對話框函數是?獲得輸入焦點函數是? (2分) alert() confirm() promopt() focus() 29.js的轉向函數是?怎麼引入一個外部js檔?(2分) window.location.href="#"

30、foo()和@foo()有什麼差別?(1分) @代表所有warning忽略 31.如何宣告一個名為」myclass」的沒有方法與屬性的類別? (1分) class myclass { } 32.如何實例化一個名為」myclass」的物件?(1分) $myclass = new myclass(); 33.你如何存取和設定一個類別的屬性? (2分)
  1. class a
  2. {
  3. public $ name = "a";
  4. }
  5. $a = new a();
  6. n=a->name;
  7. print_r($n);
複製程式碼

34、mysql_fetch_row() 和mysql_fetch_array之間有什麼差別? (1分) mysql_fetch_array() 是 mysql_fetch_row() 的擴充版本。除了將資料以數字索引方式儲存在陣列中之外,還可以將資料作為關聯索引儲存,並以欄位名稱作為鍵名。
  1. mysql_connect("localhost", "mysql_user", "mysql_password") or
  2. die("could not connectnect . mysql_error());
  3. mysql_select_db("mydb");
  4. $result = mysql_query("select id, name from mytable");
  5. while (row=myfetcharray(result, mycharray(result, mycharray(result)) 🎜> printf ("id: %s name: %s", row["id"],row["name"]);
  6. }
  7. mysql_free_result($result);
複製程式碼

35.gd庫是做什麼用的? (1分) 動態的開放的圖片處理庫 36.指出一些在php輸入一段html程式碼的辦法。 (1分)

  1. echo "{html}"
  2. echo {html}
  3. eod;
{html}eod;

複製程式碼
  1. 37、下面哪個函數可以開啟一個文件,以便對文件進行讀取和寫入操作?(1分) c   (a) fget() (b) file_open() (c) fopen() (d) open_file() 38.下面哪個選項沒有將 john 加到users 陣列中? (1分) b
  (a) $users[] = 'john';  (b) array_add($users,'john');  (d) $users ||= 'john';

複製程式碼
  1. 複製程式碼
  2. 39、下面的程式會輸入是否?(1分) 10
$num = 10;  function multiply(){  〜10;   multiply();
  echo $num;

複製程式碼
  1. 40、使用php寫一段簡單名稱,查出所有名稱為「張三」的內容並印出(2分) 表名 username tel content date  張三 13333663366 大專畢業 2006-10-11  張三 13612312331 本科畢業 2006-10-15  張四 021-55665566 中專畢業 2006-10-15 請根據上面的題目完成程式碼:
  2.   $mysql_db=mysql_connect("local","root","pass"); $sql = sprintf("select * from %s where username = '%s'",
  3. "表名",
  4. "張三");
  5. values=mysqlquery(sql);
  6. while(item=mysqlfetchqueryarray(values))
  7. {
echo sprintf("用戶名:%s, 電話%s, 學歷: %s, 畢業日期: %s",
item[ ′username′],item['tel'], item[′content′],item['date'] ); }

複製程式碼
  1. 複製程式碼
  2. 41、如何使用下面的類別,並解釋下面什麼意思?(3)
  3. class test{
  function get_test($num){
  num=md5(md5(num)."en");  return $num;  }}
$test = new test();ret=test->get_test(11);print_r($ret);exit; 複製程式碼

將num進行md5編碼之後產生的32位元字串a1和"en"連結起來之後再進行一次md5編碼 42、寫出 sql語句的格式 : 插入 ,更新 ,刪除 (4分) 表名 username tel content date  張三 13333663366 大專畢業 2006-10-11  張三 13612312331 本科畢業 2006-10-15  張四 021-55665566 中專畢業 2006-10-15   (a) 有一新記錄(小王 13254748547 高中畢業 2007-05-06)請用sql語句新增至表中 insert into 表名 values('小王', '13254748547', '高中畢業', '2007-05-06')   (b) 請用sql語句把張三的時間更新成為目前系統時間 update 表名 set date = getdate() where username = "張三"   (c) 請寫出刪除名為張四的全部記錄 delete from 表明 where username = "張四" 43.請寫出資料型別(int char varchar datetime text)的意思; 請問varchar和char有什麼差別(2分) int 整數型 char 儲存定長 varchar 存儲變長 datetime 時間 text 儲存變長的 varchar是變長 char(20) 定長 44、mysq自增類型(通常為表id字段)必需將其設為(?)字段(1分) auto_increment   45、寫出下列程式的輸出結果 (1分)   $b=201;   $c=40;   a=b>$c?4:5;   echo $a; ?> 4

46、偵測一個變數是否有設定的函數是否?是否為空的函數是?(2分) isset() empty() 47.取得查詢結果集總數的函數是?(1分) mysql_num_rows() 48、

  1. $arr = array('james', 'tom', 'symfony'); 請印出第一個元素的值(1分)
  2. print_r($arr[0]);
  3. reset($arr);
  4. print_r(current($arr));
  5. print_r(array_shift($arr)); (程式設計師之家bbs .it-home.org 編輯整理)
複製程式碼

49、請將41題的陣列的值用','號分隔並合併成字串輸出(1分) implode 50、a=′abcdef′;請取出a的值並印出第一個字母(1分) $a[0]; substr($a, 0, 1); 51、php可以和sql server/oracle等資料庫連接嗎?(1分) 可以 有現成的庫 52.請寫出php5權限控制修飾符(3分) public private protected 53.請寫出php5的建構子和析構函式(2分) public function __construct() { } public function __destruct() { } 程式設計題    1. 寫一個函數,盡可能有效率的,從一個標準 url 裡取出檔案的副檔名 例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

  1. $url = "http://www.sina.com.cn/abc/de/fg.php?id= 1";
  2. arr=parseurl(url);
  3. patharr=pathinfo(arr['path']);
  4. print_r($patharr['extension']);
複製程式碼

3. 寫一個函數,算出兩個檔案的相對路徑 如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 計算出 b相對於a 的相對路徑應該是 http://www.cnblogs.com/12/34/c.php會添上

  1. $a = '/a/b/c/d/e.php';
  2. $b = '/ a/b/12/34/c.php';
  3. //取得path相對於conpath的相對路徑
  4. function sgetrelativepath(path,conpath)
  5. {
  6. patharr=explode("/" ,path);
  7. conpatharr=explode("/",conpath);
  8. $dismatchlen = 0;
  9. for(i=0;i {
  10. if(conpatharr[i] != patharr[i])
  11. {
  12. dismatchlen=count(patharr) - $i;
  13. arrleft=arrayslice(patharr, $i);
  14. break;
  15. }
  16. }
  17. ret=strrepeat("../",dismatchlen).implode("/", $arrleft);
  18. return $ret;
  19. }
  20. print_r(sgetrelativepath (b,a));
複製程式碼

3.寫一個函數,能夠遍歷一個資料夾下的所有檔案和子資料夾。

  1. function agetallfile($folder)
  2. {
  3. $afilearr = array(); {
  4. handle=opendir(folder);
  5. while((file=readdir(handle)) !== false)
  6. {
  7. //如果是.或..則跳過
  8. if(file=="."||file == "..")
  9. {
  10. continue;
  11. }
  12. if(is_file(folder."/ ".file))
  13. {
  14. afilearr[]=file;
  15. }
  16. else if(is_dir(folder."/".file))
  17. {
  18. afilearr[file] = agetallfile(folder."/".file);
  19. }
  20. }
  21. closedir($handle);
  22. }
  23. return $afilearr;
  24. }
  25. $path = "/home/test/sql";
  26. print_r(agetallfile($path));
複製程式碼

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn