最新PHP筆試題和面試題答案目及答案

思而思學(xué)網(wǎng)

數(shù)據(jù)庫中的事務(wù)是什么?

答:事務(wù)(transaction)是作為一個(gè)單元的一組有序的數(shù)據(jù)庫操作。如果組中的所有操作都成功,則認(rèn)為事務(wù)成功,即使只有一個(gè)操作失敗,事務(wù)也不成功。如果所有操作完成, 事務(wù)則提交,其修改將作用于所有其他數(shù)據(jù)庫進(jìn)程。如果一個(gè)操作失敗,則事務(wù)將回滾,該事務(wù)所有操作的影響都將取消。 答:事務(wù)就是一系列的操作,這些操作完成一項(xiàng)任務(wù)。只要這些操作里有一個(gè)操作沒有成功,事務(wù)就操作失敗,發(fā)生回滾事件。即撤消前面的操作,這樣可以保證數(shù)據(jù)的一致性。而且可以把操作暫時(shí)放在緩存里,等所有操作都成功有提交數(shù)據(jù)庫,這樣保證費(fèi)時(shí)的操作都是有效操作。

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

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

error_reporting(2047)什么作用?

答:PHP 顯示所有錯(cuò)誤 E_ALL

session與cookie的區(qū)別?

答:session: 儲存用戶訪問的全局唯一變量,存儲在服務(wù)器上的php指定的目錄中的(session_dir)的位置進(jìn)行的存放 cookie:用來存儲連續(xù)訪問一個(gè)頁面時(shí)所使用,是存儲在客戶端,對于Cookie來說是存儲在用戶WIN的Temp目錄中的。 兩者都可通過時(shí)間來設(shè)置時(shí)間長短

表單中 get與post提交方法的區(qū)別?

答:get是發(fā)送請求HTTP協(xié)議通過url參數(shù)傳遞進(jìn)行接收,而post是實(shí)體數(shù)據(jù),可以通過表單提交大量信息.

用PHP打印出前一天的時(shí)間格式是2015-11-26 12:11:11

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

打開php.ini中的Safe_mode,會影響哪些函數(shù)?至少說出6個(gè)。

答: 1: 用戶輸入輸出函數(shù)(fopen() file()require(),只能用于調(diào)用這些函數(shù)有相同腳本的擁有者) 2:創(chuàng)建新文件(限制用戶只在該用戶擁有目錄下創(chuàng)建文件) 3:用戶調(diào)用 popen() systen()exec()等腳本,只有腳本處在sa fe_mode_exec_dir配置指令指定的 錄中才可能 4:加強(qiáng)HTTP認(rèn)證,認(rèn)證腳本擁有者的UID的劃入認(rèn)證領(lǐng)域范圍內(nèi),此外啟用安全模式下,不會設(shè)置PHP_AUTH 5:mysql服務(wù)器所用的用戶名必須與調(diào)用mysql_connect()的文件的擁有者用戶名相同 6:受影響的函數(shù)變量以及配置命令達(dá)到40個(gè)

MySQL數(shù)據(jù)庫,怎么優(yōu)化?

答: (1) 配置優(yōu)化(服務(wù)器配置) (2)建表優(yōu)化(表、字段設(shè)置) (3)查詢優(yōu)化(sql語句) 答: 1、選取最適用的字段屬性,盡可能減少定義字段長度,盡量把字段設(shè)置NOT NULL,例如’省份,性別’,最好設(shè)置為ENUM 2、使用連接(JOIN)來代替子查詢: 3、使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時(shí)表 4、事務(wù)處理: 5、鎖定表,優(yōu)化事務(wù)處理: 6、使用外鍵,優(yōu)化鎖定表 7、建立索引: 8、優(yōu)化查詢語句

寫一個(gè)函數(shù),能夠遍歷一個(gè)文件夾下的所有文件和子文件夾。(目錄操作)

$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

使用哪些工具進(jìn)行版本控制?

答:cvs,svn,vss;

如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?

答:echo strrev($a);

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

答:now(),date()

請寫一個(gè)函數(shù)驗(yàn)證電子郵件的格式是否正確

function checkEmail($email)

{

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

return Pg_match($PgEmail,$email);

}

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

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

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

答:echo 是PHP語句, print和print_r是函數(shù),語句沒有返回值,函數(shù)可以有返回值(即便沒有用) print() 只能打印出簡單類型變量的值(如int,string) print_r() 可以打印出復(fù)雜類型變量的值(如數(shù)組,對象) echo 輸出一個(gè)或者多個(gè)字符串

在PHP中error_reporting這個(gè)函數(shù)有什么作用?

答:設(shè)置錯(cuò)誤級別與錯(cuò)誤信息回報(bào)

PHP的意思

答:PHP是一個(gè)基于服務(wù)端來創(chuàng)建動態(tài)網(wǎng)站的腳本語言,您可以用PHP和HTML生成網(wǎng)站主頁

實(shí)現(xiàn)中文字串截取無亂碼的方法。

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;

}

}

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

答:確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量,數(shù)據(jù)庫讀寫分離,優(yōu)化數(shù)據(jù)表, 程序功能規(guī)則,禁止外部的盜鏈,控制大文件的下載,使用不同主機(jī)分流主要流量

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

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

如何修改SESSION的生存時(shí)間

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

有一個(gè)網(wǎng)頁地址, 比如PHP開發(fā)資源網(wǎng)主頁: http://www.meizhi520.com,如何得到它的內(nèi)容?

答: 方法1(對于PHP5及更高版本): $readcontents = fopen("http://www.meizhi520.com", "rb"); $contents = stream_get_contents($readcontents); fclose($readcontents); echo $contents; 方法2: echo file_get_contents("http://www.meizhi520.com");

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

答:狀態(tài)401代表未被授權(quán),header("Location:xxx.php");

談?wù)刟sp,php,jsp的優(yōu)缺點(diǎn)

答: ASP全名Active Server Pages,是一個(gè)WEB服務(wù)器端的開發(fā)環(huán)境, 利用它可以產(chǎn)生和運(yùn)行動態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語言VB Script(Java script)作為自己的開發(fā)語言。 PHP是一種跨平臺的服務(wù)器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的語法, 并耦合PHP自己的特性,使WEB開發(fā)者能夠快速地寫出動態(tài)生成頁面.它支持目前絕大多數(shù)數(shù)據(jù)庫。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢,你可以從 PHP官方站點(diǎn)(http://www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。 JSP 是Sun公司推出的新一代站點(diǎn)開發(fā)語言,他完全解決了目前ASP,PHP的一個(gè)通。_本級執(zhí)行(據(jù)說PHP4 也已經(jīng)在Zend 的支持下,實(shí)現(xiàn)編譯運(yùn)行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應(yīng)用程序 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。 三者都提供在 HTML 代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成 Servlet 并由 Java 虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對 JSP 頁面的第一次請求時(shí)發(fā)生。在 ASP 、PHP、JSP 環(huán)境下, HTML 代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴于 Web 服務(wù)器,而 ASP 、PHP、JSP 頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML 代碼中,然后一起發(fā)送給瀏覽器。 ASP 、PHP、 JSP三者都是面向 Web 服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。

談?wù)剬vc的認(rèn)識

答: 由模型(model),視圖(view),控制器(controller)完成的應(yīng)用程序 由模型發(fā)出要實(shí)現(xiàn)的功能到控制器,控制器接收組織功能傳遞給視圖;

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

答:heredoc的語法是用"<<<"加上自己定義成對的標(biāo)簽,在標(biāo)簽范圍內(nèi)的文字視為一個(gè)字符串 例子: $str = <<<EOT this is meizhi520.com; welcome! EOT;

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

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

請說明php中傳值與傳引用的區(qū)別。什么時(shí)候傳值什么時(shí)候傳引用?

答: 按值傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部都會被忽略 按引用傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部也能反映出這些修改 優(yōu)缺點(diǎn): 按值傳遞時(shí),php必須復(fù)制值。特別是對于大型的字符串和對象來說,這將會是一個(gè)代價(jià)很大的操作。 按引用傳遞則不需要復(fù)制值,對于性能提高很有好處。

JS表單彈出對話框函數(shù)是?獲得輸入焦點(diǎn)函數(shù)是?

答:彈出對話框: alert(),prompt(),confirm() 獲得輸入焦點(diǎn) focus()

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

答: window.location.href <script type="text/javascript" src="js/js_function.js"></script>

mysql_fetch_row() 和mysql_fetch_array之間有什么區(qū)別?

答:mysql_fetch_row是從結(jié)果集取出1行數(shù)組,作為枚舉 mysql_fetch_array是從結(jié)果集取出一行數(shù)組作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,兩者兼得

GD庫是做什么用的?

答:gd庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。 在網(wǎng)站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網(wǎng)站數(shù)據(jù)生成報(bào)表。

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

答:echo "<a href='meizhi520.com'>meizhi520</a>";

下面哪個(gè)函數(shù)可以打開一個(gè)文件,以對文件進(jìn)行讀和寫操作?

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

下面哪個(gè)選項(xiàng)沒有將 john 添加到users 數(shù)組中?

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

下面的程序會輸入是否?

<?php

$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方法,實(shí)例化類調(diào)用方法多字符串加密

寫出以下程序的輸出結(jié)果

$b=201;

$c=40;

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

echo$a;

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

答:mysql_num_rows($result);

數(shù)組

數(shù)組:$arr = array('james', 'tom', 'symfony'); 1.請打印出第一個(gè)元素的值 答:echo $array[0]; 2.請將數(shù)組的值用','號分隔并合并成字串輸出 答:for($i=0;$i<count($array);$i++){ echo $array[$i].",";}

$a = 'meizhi520.com'; 請取出$a的值并打印出第一個(gè)字母

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

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

答:當(dāng)然可以

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

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

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

答:__construct , __destruct

熱門推薦

最新文章