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

思而思學網(wǎng)

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

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

用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的區(qū)別?

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

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

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

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

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

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

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

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

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

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

$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;

如何實現(xiàn)字符串翻轉?

答:echo strrev($a);

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

答:now(),date()

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

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);

}

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

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

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

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

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

答:設置錯誤級別與錯誤信息回報

PHP的意思

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

實現(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)站,您采用什么樣的方法來解決訪問量問題?

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

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

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

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

答: 方法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代表未被授權,header("Location:xxx.php");

談談asp,php,jsp的優(yōu)缺點

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

談談對mvc的認識

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

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

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

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

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

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

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

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

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

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

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

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

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

GD庫是做什么用的?

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

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

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

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

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

下面哪個選項沒有將 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方法,實例化類調用方法多字符串加密

寫出以下程序的輸出結果

$b=201;

$c=40;

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

echo$a;

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

答:mysql_num_rows($result);

數(shù)組

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

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

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

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

答:當然可以

請寫出PHP5權限控制修飾符

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

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

答:__construct , __destruct

熱門推薦

最新文章