php面試題目_php筆試題目_php面試測試?

Tags: 題目, 函式, 筆試,

資料庫中的事務是什麼?

答:事務(transaction)是作為一個單元的一組有序的資料庫操作。如果組中的所有操作都成功,則認為事務成功,即使只有一個操作失敗,事務也不成功。如果所有操作完成, 事務則提交,其修改將作用於所有其他資料庫程序。如果一個操作失敗,則事務將回滾,該事務所有操作的影響都將取消。 答:事務就是一系列的操作,這些操作完成一項任務。只要這些操作裡有一個操作沒有成功,事務就操作失敗,發生回滾事件。即撤消前面的操作,這樣可以保證資料的一致性。而且可以把操作暫時放在快取裡,等所有操作都成功有提交資料庫,這樣保證費時的操作都是有效操作。

用PHP寫出顯示客戶端IP與伺服器IP的程式碼

答:列印客戶端IP:echo $_SERVER['REMOTE_ADDR']; 或者: getenv('REMOTE_ADDR'); 列印伺服器IP:echo gethostbyname('www.meizhi520.com')

error_reporting(2047)什麼作用?

答:PHP 顯示所有錯誤 E_ALL

session與cookie的區別?

答:session:儲存使用者訪問的全域性唯一變數,儲存在伺服器上的php指定的目錄中的(session_dir)的位置進行的存放 cookie:用來儲存連續訪問一個頁面時所使用,是儲存在客戶端,對於Cookie來說是儲存在使用者WIN的Temp目錄中的。 兩者都可通過時間來設定時間長短

表單中 get與post提交方法的區別?

答:get是傳送請求HTTP協議通過url引數傳遞進行接收,而post是實體資料,可以通過表單提交大量資訊.

用PHP打印出前一天的時間格式是2013-11-26 12:11:11

答:echodate('Y-m-d H:i:s', strtotime('-1 days'));

開啟php.ini中的Safe_mode,會影響哪些函式?至少說出6個。

答: 1:使用者輸入輸出函式(fopen() file()require(),只能用於呼叫這些函式有相同指令碼的擁有者) 2:建立新檔案(限制使用者只在該使用者擁有目錄下建立檔案) 3:使用者呼叫popen() systen()exec()等指令碼,只有指令碼處在sa fe_mode_exec_dir配置指令指定的 錄中才可能 4:加強HTTP認證,認證指令碼擁有者的UID的劃入認證領域範圍內,此外啟用安全模式下,不會設定PHP_AUTH 5:mysql伺服器所用的使用者名稱必須與呼叫mysql_connect()的檔案的擁有者使用者名稱相同 6:受影響的函式變數以及配置命令達到40個

MySQL資料庫,怎麼優化?

答: (1)配置優化(伺服器配置) (2)建表優化(表、欄位設定) (3)查詢優化(sql語句) 答: 1、選取最適用的欄位屬性,儘可能減少定義欄位長度,儘量把欄位設定NOT NULL,例如’省份,性別’,最好設定為ENUM 2、使用連線(JOIN)來代替子查詢: 3、使用聯合(UNION)來代替手動建立的臨時表 4、事務處理: 5、鎖定表,優化事務處理: 6、使用外來鍵,優化鎖定表 7、建立索引: 8、優化查詢語句

寫一個函式,能夠遍歷一個資料夾下的所有檔案和子資料夾。(目錄操作)

$d = dir(dirname(__file__));

echo "Handle: " . $d->handle . "\n";

echo "Path: " . $d->path . "\n";

while ( false !== ($entry = $d->read ()) ) {

echo $entry . "";

}

$d->close ();

能夠使HTML和PHP分離開使用的模板

答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate

使用哪些工具進行版本控制?

答:cvs,svn,vss;

如何實現字串翻轉?

答:echo strrev($a);

MYSQL取得當前時間的函式是?,格式化日期的函式是

答:now(),date()

請寫一個函式驗證電子郵件的格式是否正確

function checkEmail($email)

{

$pregEmail = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";

return preg_match($pregEmail,$email);

}

檢測一個變數是否有設定的函式是?是否為空的函式是?

答:isset($str),empty($str);

echo(),print(),print_r()的區別

答:echo是PHP語句, print和print_r是函式,語句沒有返回值,函式可以有返回值(即便沒有用) print() 只能打印出簡單型別變數的值(如int,string) print_r() 可以打印出複雜型別變數的值(如陣列,物件) echo 輸出一個或者多個字串

在PHP中error_reporting這個函式有什麼作用?

答:設定錯誤級別與錯誤資訊回報

PHP的意思

答:PHP是一個基於服務端來建立動態網站的指令碼語言,您可以用PHP和HTML生成網站主頁

實現中文字串擷取無亂碼的方法。

function GBsubstr($string, $start, $length) {

if(strlen($string)>$length){

$str=null;

$len=$start+$length;

for($i=$start;$i<$len;$i++){

if(ord(substr($string,$i,1))>0xa0){

$str.=substr($string,$i,2);

$i++;

}else{

$str.=substr($string,$i,1);

}

}

return $str.'…';

}else{

return $string;

}

}

對於大流量的網站,您採用什麼樣的方法來解決訪問量問題?

答:確認伺服器硬體是否足夠支援當前的流量,資料庫讀寫分離,優化資料表, 程式功能規則,禁止外部的盜鏈,控制大檔案的下載,使用不同主機分流主要流量

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

答:require->require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執行require include->include有返回值,而require沒有(可能因為如此require的速度比include快) 注意:包含檔案不存在或者語法錯誤的時候require是致命的,include不是 使用 require_once() 和 include_once()可以避免多次包含同一檔案以避免函式重定義,變數重新賦值等問題。 返回值和 include() 相同。如果檔案已被包含,本函式返回 TRUE。 注: require_once() 是 php 4.0.1pl2 中新加入的。

如何修改SESSION的生存時間

答: 方法1:將php.ini中的session.gc_maxlifetime設定為9999重啟apache 方法2: $savePath = "./session_save_dir/"; $lifeTime = 小時 * 秒; session_save_path($savePath); session_set_cookie_params($lifeTime); session_start(); 方法3: setcookie() and session_set_cookie_params($lifeTime);

有一個網頁地址, 比如PHP開發資源網主頁: ,如何得到它的內容?

答:方法1(對於PHP5及更高版本): $readcontents = fopen("", "rb"); $contents = stream_get_contents($readcontents); fclose($readcontents); echo $contents; 方法2: echo file_get_contents("");

在HTTP 1.0中,狀態碼401的含義是(_);如果返回“找不到檔案”的提示,則可用 header 函式,其語句為(__);

答:狀態401代表未被授權,header("Location:xxx.php");

談談asp,php,jsp的優缺點

答: ASP全名Active Server Pages,是一個WEB伺服器端的開發環境, 利用它可以產生和執行動態的、互動的、高效能的WEB服務應用程式。ASP採用指令碼語言VB Script(Java script)作為自己的開發語言。 PHP是一種跨平臺的伺服器端的嵌入式指令碼語言. 它大量地借用C,Java和Perl語言的語法, 並耦合PHP自己的特性,使WEB開發者能夠快速地寫出動態生成頁面.它支援目前絕大多數資料庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點(自由下載。而且你可以不受限制地獲得原始碼,甚至可以從中加進你自己需要的特色。 JSP 是Sun公司推出的新一代站點開發語言,他完全解決了目前ASP,PHP的一個通病--指令碼級執行(據說PHP4 也已經在Zend 的支援下,實現編譯執行).Sun 公司藉助自己在Java 上的不凡造詣,將Java 從Java 應用程式 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支援下,完成功能強大的站點程式。 三者都提供在 HTML 程式碼中混合某種程式程式碼、由語言引擎解釋執行程式程式碼的能力。但JSP程式碼被編譯成 Servlet 並由 Java 虛擬機器解釋執行,這種編譯操作僅在對 JSP 頁面的第一次請求時發生。在 ASP 、PHP、JSP 環境下, HTML 程式碼主要負責描述資訊的顯示樣式,而程式程式碼則用來描述處理邏輯。普通的 HTML 頁面只依賴於 Web 伺服器,而 ASP 、PHP、JSP 頁面需要附加的語言引擎分析和執行程式程式碼。程式程式碼的執行結果被重新嵌入到HTML 程式碼中,然後一起傳送給瀏覽器。 ASP 、PHP、 JSP三者都是面向 Web 伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支援。

談談對mvc的認識

答: 由模型(model),檢視(view),控制器(controller)完成的應用程式 由模型發出要實現的功能到控制器,控制器接收組織功能傳遞給檢視;

在PHP中,heredoc是一種特殊的字串,它的結束標誌必須?

答:heredoc的語法是用"<<<"加上自己定義成對的標籤,在標籤範圍內的文字視為一個字串 例子: $str = <<

簡述如何得到當前執行指令碼路徑,包括所得到引數。

答:$script_name = basename(__FILE__); print_r($script_name);

請說明php中傳值與傳引用的區別。什麼時候傳值什麼時候傳引用?

答: 按值傳遞:函式範圍內對值的任何改變在函式外部都會被忽略 按引用傳遞:函式範圍內對值的任何改變在函式外部也能反映出這些修改 優缺點: 按值傳遞時,php必須複製值。特別是對於大型的字串和物件來說,這將會是一個代價很大的操作。 按引用傳遞則不需要複製值,對於效能提高很有好處。

JS表單彈出對話方塊函式是?獲得輸入焦點函式是?

答:彈出對話方塊: alert(),prompt(),confirm() 獲得輸入焦點 focus()

JS的轉向函式是?怎麼引入一個外部JS檔案?

答: window.location.href

mysql_fetch_row() 和mysql_fetch_array之間有什麼區別?

答:mysql_fetch_row是從結果集取出1行陣列,作為列舉 mysql_fetch_array是從結果集取出一行陣列作為關聯陣列,或數字陣列,兩者兼得

GD庫是做什麼用的?

答:gd庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。 在網站上GD庫通常用來生成縮圖或者用來對圖片加水印或者對網站資料生成報表。

指出一些在PHP輸入一段HTML程式碼的辦法。

答:echo "meizhi520";

下面哪個函式可以開啟一個檔案,以對檔案進行讀和寫操作?

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

下面哪個選項沒有將 john 新增到users 陣列中?

(a) $users[] = 'john'; (b) array_add($users,'john'); (c) array_push($users,'john'); (d) $users = 'john';

下面的程式會輸入是否?

$num = 10;

function multiply(){

$num = $num * 10;

}

multiply();

echo $num;

?>

如何使用下面的類,並解釋下面什麼意思?

class test{

function Get_test($num){

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

return $num;

}

}

答: $testnum = "123″; $object = new test(); $encrypt = $object->Get_test($testnum); echo $encrypt; 類test裡面包含Get_test方法,例項化類呼叫方法多字串加密

寫出以下程式的輸出結果

$b=201;

$c=40;

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

echo$a;

取得查詢結果集總數的函式是?

答:mysql_num_rows($result);

陣列

陣列:$arr = array('james', 'tom', 'symfony'); 1.請打印出第一個元素的值 答:echo $array[0]; 2.請將陣列的值用','號分隔併合併成字串輸出 答:for($i=0;$i

$a = 'meizhi520.com'; 請取出$a的值並打印出第一個字母

答:echo $a{0} 或 echo substr($a,0,1)

PHP可以和sql server/oracle等資料庫連線嗎?

答:當然可以

請寫出PHP5許可權控制修飾符

答:public(公共),private(私用),protected(繼承)

請寫出php5的建構函式和解構函式

答:__construct , __destruct

題目, 函式, 筆試,
相關問題答案