程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP面試題集,php試題

PHP面試題集,php試題

編輯:關於PHP編程

PHP面試題集,php試題


汗~~做了一下網絡上的php題目,不知不覺做到現在.....把答案貼出來
如果有問題請歡迎補充和指正

 

 1、用PHP打印出前一天的時間格式是2006-5-10 22:21:21(2分)   $a = date("Y-m-d H:i:s", strtotime("-1 day")); print_r($a);

 

    2、echo(),print(),print_r()的區別(3分)   echo 和print不是一個函數,是一個語言結構 int print(string $arg), 只有一個參數 echo arg1,arg2; 可以輸出多個參數,返回void echo和print只能打印出string,不能打印出結構 print_r能打印出結構 比如  $arr = array("key"=>"value"); print_r($arr);

 

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

 

    4、使用哪些工具進行版本控制?(1分) svn,git,cvs

 

    5、如何實現字符串翻轉?(3分) 英文: strrev($a)   中文或其他文字:   中文:GB2312, 代碼是使用GB2312編碼 <?php function reverse($str) { $ret = ""; len=mbstrwidth(str,"GB2312"); for(i=0;i< len;i++) { arr[]=mbsubstr(str, $i, 1, "GB2312"); } return implode("", array_reverse($arr)); } print_r(reverse("你好"));

 

    ---------------------------------------------------------------     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", "%Y-%m-%d");

 

      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、有一個網頁地址, 比如PHP研究室主頁: http://www.phpv.net/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 = <<EOD good test EOD;

 

    20、談談asp,php,jsp的優缺點(1分) asp是需要依賴IIS,是微軟開發的語言 php和jsp可以依賴apache或者 nginx等其他服務器

 

    21、談談對mvc的認識(1分) model : 數據結構層 view :展現 control : 接收和判斷處理輸入

 

      -------------------------------------------------------------------     22、寫出發貼數最多的十個人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分) select top 10 id,username from members order by posts desc

 

    23. 請說明php中傳值與傳引用的區別。什麼時候傳值什麼時候傳引用?(2分) &表示傳引用 函數中參數傳引用會將參數進行改變 一般在輸出參數有多個的時候可以考慮使用引用

 

    24. 在PHP中error_reporting這個函數有什麼作用? (1分) 設定error的展示級別

 

    25. 請寫一個函數驗證電子郵件的格式是否正確 (2分) $str = "[email protected]"; 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="#"   <script src="#"> </script>

 

    30、foo()和@foo()之間有什麼區別?(1分) @代表所有warning忽略

 

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

 

    32、如何實例化一個名為”myclass”的對象?(1分) $myclass = new myclass();

 

    33、你如何訪問和設置一個類的屬性? (2分) <?php class A { public $name = "A"; }   $a = new A(); n=a->name; print_r($n);

 

    34、mysql_fetch_row() 和mysql_fetch_array之間有什麼區別? (1分) mysql_fetch_array() 是 mysql_fetch_row() 的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,用字段名作為鍵名。    <?php     mysql_connect("localhost", "mysql_user", "mysql_password") or         die("Could not connect: " . mysql_error());     mysql_select_db("mydb");       $result = mysql_query("SELECT id, name FROM mytable");       while (row=mysqlfetcharray(result, MYSQL_ASSOC)) {         printf ("ID: %s  Name: %s", row["id"],row["name"]);     }       mysql_free_result($result);

 

    --------------------------------------------------------------------     35、GD庫是做什麼用的? (1分) 動態的開放的圖片處理庫

 

    36、指出一些在PHP輸入一段HTML代碼的辦法。(1分) echo "{html}" echo <<EOD {html} EOD;

 

    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’);   (c) array_push($users,‘john’);   (d) $users ||= ‘john’;

 

    39、下面的程序會輸入是否?(1分) 10   $num = 10;   function multiply(){   num=num * 10;   }   multiply();   echo $num;   ?>

 

    40、使用php寫一段簡單查詢,查出所有姓名為“張三”的內容並打印出來 (2分)   表名 UserName 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); $sql = sprintf("select * from %s where UserName = '%s'",  "表名",  "張三"); values=mysqlquery(sql); while(item=mysqlfetchqueryarray(values)) { echo sprintf("用戶名:%s, 電話 %s, 學歷: %s, 畢業日期: %s",  item[′UserName′],item['Tel'], item[′Content′],item['Date'] ); }

 

    41、如何使用下面的類,並解釋下面什麼意思?(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、$arr = array('james', 'tom', 'symfony'); 請打印出第一個元素的值 (1分) print_r($arr[0]);   reset($arr); print_r(current($arr));   print_r(array_shift($arr));

 

    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   <?php $url = "http://www.sina.com.cn/abc/de/fg.php?id=1"; arr=parseurl(url); pathArr=pathinfo(arr['path']); 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將添上

 

  <?php   $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php';     //獲取path相對於conpath的相對路徑 function sGetRelativePath(path,conpath) { pathArr=explode("/",path); conpathArr=explode("/",conpath); $dismatchlen = 0; for(i=0;i < count(pathArr);i++) { if(conpathArr[i] != pathArr[i]) { dismatchlen=count(pathArr) - $i; arrLeft=arrayslice(pathArr, $i); break; } } ret=strrepeat("../",dismatchlen).implode("/", $arrLeft); return $ret; }   print_r(sGetRelativePath(b,a));

 

      3.寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾。

 

<?php function aGetAllFile($folder) { $aFileArr = array(); if(is_dir($folder)) { handle=opendir(folder); while((file=readdir(handle)) !== false) { //如果是.或者..則跳過 if(file=="."||file == "..") { continue; } if(is_file(folder."/".file)) { aFileArr[]=file;  } else if(is_dir(folder."/".file)) { aFileArr[file] = aGetAllFile(folder."/".file); } } closedir($handle); } return $aFileArr; }   $path = "/home/test/sql"; print_r(aGetAllFile($path));

PHP程序員上機面試題(並附答案,回答好的加分)

某大公司的PHP面試題

管理提醒: 本帖被 haowubai 執行取消置頂操作(2009-07-30)
1. 如何用php的環境變量得到一個網頁地址的內容?ip地址又要怎樣得到?
[php]
echo $_SERVER ['PHP_SELF'];
echo $_SERVER ['SERVER_ADDR'];
[/php]

2. 求兩個日期的差數,例如2007-2-5 ~ 2007-3-6 的日期差數
[php]
$begin=strtotime('2007-2-5');
$end=strtotime('2007-3-6');
echo ($end-$begin)/(24*3600);
[/php]

3. 請寫一個函數,實現以下功能:
字符串“open_door” 轉換成 “OpenDoor”、”make_by_id” 轉換成 ”MakeById”。
[php]
function changeStyle(& $str) {

/*$str = str_replace ( "_", " ", $str );
$str = ucwords ( $str );
$str = str_replace ( " ", "", $str );
return $str;*/

$arrStr=explode('_',$str);
foreach($arrStr as $key=>$value){
$arrStr[$key]=strtoupper(substr($value,0,1)).substr($value,1);
}
return implode('',$arrStr);
}
$s = "open_door";
echo changeStyle ( $s );
[/php]

4. 要求寫一段程序,實現以下數組$arr1轉換成數組$arr2:
[php]$arr1 = array (
'0' => array ('fid' => 1, 'tid' => 1, 'name' =>'Name1' ),
'1' => array ('fid' => 1, 'tid' => 2 , 'name' =>'Name2' ),
'2' => array ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ),
'3' => array ('fid' => 1, 'tid' => 7 , 'name' =>'Name4' ),
'4' => array ('fid' => 3, 'tid' => 9, 'name' =>'Name5' )
);
$arr2 = array......余下全文>>
 

PHP面試題?急忙

求職的朋友可以看看,不過也不要想著這些就一定有用,有時候工作中的經驗也是非常重要的。不過,基本知識點還是非常重要的。至於高階中的算法問題,如果你不是做特別重要的任務,這些算法你是碰不到的(做網游的除外);高階中的像冊處理,如果你真能處理好了,你單獨做一個產品出售也不成問題啊。

1. 基本知識點
HTTP協議中幾個狀態碼的含義:503 500 401 200 301 302
Include require include_once require_once 的區別.
PHP/Mysql中幾個版本的進化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改進等等。
HEREDOC介紹
寫出一些php魔幻方法;
一些編譯php時的configure 參數
向php傳入參數的兩種方法。
(mysql)請寫出數據類型(int char varchar datetime text)的意思; 請問varchar和char有什麼區別;
error_reporting 等調試函數使用
您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?
posix和perl標准的正則表達式區別;
Safe_mode 打開後哪些地方受限.
寫代碼來解決多進程/線程同時讀寫一個文件的問題。
寫一段上傳文件的代碼。
Mysql 的存儲引擎,myisam和innodb的區別。

2. web 架構,安全,項目經驗
介紹xdebug,apc,eAccelerator,Xcache,Zend opt的使用經驗。
使用mod_rewrite,在服務器上沒有/archivers/567.html這個物理文件時,重定向到index.php?id=567 ,請先打開mod_rewrite.
MySQL數據庫作發布系統的存儲,一天五萬條以上的增量,預計運維三年,怎麼優化?
寫出一種排序算法(原理),並說出優化它的方法。
請簡單闡述您最得意的開發之作
對於大流量的網站,您采用什麼樣的方法來解決各頁面訪問量統計問題
您是否用過模板引擎? 如果有您用的模板引擎的名字是?
請介紹Session的原理,大型網站中Session方面應注意什麼?
測試php性能和mysql數據庫性能的工具,和找出瓶頸的方法。
正則提出一個網頁中的所有鏈接.
介紹一下常見的SSO(單點登陸)方案(比如dedecms整合discuz的passport)的原理。
您寫過的PHP框架的特點,主要解決什麼問題,與其他框架的不同點。
大型的論壇/新聞文章系統/SNS網站在性能優化上有什麼區別?
相冊類應用:要求在浏覽器中能同時選中並上傳多個文件,圖片要求能剪裁,壓縮包在服務器端解壓。能上傳單個達50M的文件。上傳過程中有進度條顯示。每個圖片能生成四種大小縮略圖,視頻文件要轉成flv供flash播放。敘述要涉及的各類開源軟件和簡單用途。
一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…, 如此不停的進行下去,直到最後只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最後那個大王的編號。用程序模擬該過程。

3. unix/linux 基本使用
linux下查看當前系統負載信息的一些方法。
vim的基本快捷鍵。
ssh 安全增強方法;密碼方式和rsa key 方式的配置。
rpm/apt&......余下全文>>
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved