數(shù)據(jù)庫(kù)中的事務(wù)是什么?
答:事務(wù)(transaction)是作為一個(gè)單元的一組有序的數(shù)據(jù)庫(kù)操作。如果組中的所有操作都成功,則認(rèn)為事務(wù)成功,即使只有一個(gè)操作失敗,事務(wù)也不成功。如果所有操作完成, 事務(wù)則提交,其修改將作用于所有其他數(shù)據(jù)庫(kù)進(jìn)程。如果一個(gè)操作失敗,則事務(wù)將回滾,該事務(wù)所有操作的影響都將取消。 答:事務(wù)就是一系列的操作,這些操作完成一項(xiàng)任務(wù)。只要這些操作里有一個(gè)操作沒(méi)有成功,事務(wù)就操作失敗,發(fā)生回滾事件。即撤消前面的操作,這樣可以保證數(shù)據(jù)的一致性。而且可以把操作暫時(shí)放在緩存里,等所有操作都成功有提交數(shù)據(jù)庫(kù),這樣保證費(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: 儲(chǔ)存用戶訪問(wèn)的全局唯一變量,存儲(chǔ)在服務(wù)器上的php指定的目錄中的(session_dir)的位置進(jìn)行的存放 cookie:用來(lái)存儲(chǔ)連續(xù)訪問(wèn)一個(gè)頁(yè)面時(shí)所使用,是存儲(chǔ)在客戶端,對(duì)于Cookie來(lái)說(shuō)是存儲(chǔ)在用戶WIN的Temp目錄中的。 兩者都可通過(guò)時(shí)間來(lái)設(shè)置時(shí)間長(zhǎng)短
表單中 get與post提交方法的區(qū)別?
答:get是發(fā)送請(qǐng)求HTTP協(xié)議通過(guò)url參數(shù)傳遞進(jìn)行接收,而post是實(shí)體數(shù)據(jù),可以通過(guò)表單提交大量信息.
用PHP打印出前一天的時(shí)間格式是2015-11-26 12:11:11
答:echodate('Y-m-d H:i:s', strtotime('-1 days'));
打開(kāi)php.ini中的Safe_mode,會(huì)影響哪些函數(shù)?至少說(shuō)出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),此外啟用安全模式下,不會(huì)設(shè)置PHP_AUTH 5:mysql服務(wù)器所用的用戶名必須與調(diào)用mysql_connect()的文件的擁有者用戶名相同 6:受影響的函數(shù)變量以及配置命令達(dá)到40個(gè)
MySQL數(shù)據(jù)庫(kù),怎么優(yōu)化?
答: (1) 配置優(yōu)化(服務(wù)器配置) (2)建表優(yōu)化(表、字段設(shè)置) (3)查詢優(yōu)化(sql語(yǔ)句) 答: 1、選取最適用的字段屬性,盡可能減少定義字段長(zhǎng)度,盡量把字段設(shè)置NOT NULL,例如’省份,性別’,最好設(shè)置為ENUM 2、使用連接(JOIN)來(lái)代替子查詢: 3、使用聯(lián)合(UNION)來(lái)代替手動(dòng)創(chuàng)建的臨時(shí)表 4、事務(wù)處理: 5、鎖定表,優(yōu)化事務(wù)處理: 6、使用外鍵,優(yōu)化鎖定表 7、建立索引: 8、優(yōu)化查詢語(yǔ)句
寫一個(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分離開(kāi)使用的模板
答: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()
請(qǐng)寫一個(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);
}
檢測(cè)一個(gè)變量是否有設(shè)置的函數(shù)是?是否為空的函數(shù)是?
答:isset($str),empty($str);
echo(),print(),print_r()的區(qū)別
答:echo 是PHP語(yǔ)句, print和print_r是函數(shù),語(yǔ)句沒(méi)有返回值,函數(shù)可以有返回值(即便沒(méi)有用) print() 只能打印出簡(jiǎn)單類型變量的值(如int,string) print_r() 可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象) echo 輸出一個(gè)或者多個(gè)字符串
在PHP中error_reporting這個(gè)函數(shù)有什么作用?
答:設(shè)置錯(cuò)誤級(jí)別與錯(cuò)誤信息回報(bào)
PHP的意思
答:PHP是一個(gè)基于服務(wù)端來(lái)創(chuàng)建動(dòng)態(tài)網(wǎng)站的腳本語(yǔ)言,您可以用PHP和HTML生成網(wǎng)站主頁(yè)
實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。
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;
}
}
對(duì)于大流量的網(wǎng)站,您采用什么樣的方法來(lái)解決訪問(wèn)量問(wèn)題?
答:確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量,數(shù)據(jù)庫(kù)讀寫分離,優(yōu)化數(shù)據(jù)表, 程序功能規(guī)則,禁止外部的盜鏈,控制大文件的下載,使用不同主機(jī)分流主要流量
語(yǔ)句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(__)語(yǔ)句代替它們?
答:require->require 是無(wú)條件包含也就是如果一個(gè)流程里加入require,無(wú)論條件成立與否都會(huì)先執(zhí)行require include->include有返回值,而 require沒(méi)有(可能因?yàn)槿绱藃equire的速度比include快) 注意:包含文件不存在或者語(yǔ)法錯(cuò)誤的時(shí)候require是致命的,include不是 使用 require_once() 和 include_once()可以避免多次包含同一文件以避免函數(shù)重定義,變量重新賦值等問(wèn)題。 返回值和 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)頁(yè)地址, 比如PHP開(kāi)發(fā)資源網(wǎng)主頁(yè): http://www.meizhi520.com,如何得到它的內(nèi)容?
答: 方法1(對(duì)于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ù),其語(yǔ)句為(__);
答:狀態(tài)401代表未被授權(quán),header("Location:xxx.php");
談?wù)刟sp,php,jsp的優(yōu)缺點(diǎn)
答: ASP全名Active Server Pages,是一個(gè)WEB服務(wù)器端的開(kāi)發(fā)環(huán)境, 利用它可以產(chǎn)生和運(yùn)行動(dòng)態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語(yǔ)言VB Script(Java script)作為自己的開(kāi)發(fā)語(yǔ)言。 PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言. 它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法, 并耦合PHP自己的特性,使WEB開(kāi)發(fā)者能夠快速地寫出動(dòng)態(tài)生成頁(yè)面.它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢,你可以從 PHP官方站點(diǎn)(http://www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。 JSP 是Sun公司推出的新一代站點(diǎn)開(kāi)發(fā)語(yǔ)言,他完全解決了目前ASP,PHP的一個(gè)通。_本級(jí)執(zhí)行(據(jù)說(shuō)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 代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成 Servlet 并由 Java 虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì) JSP 頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。在 ASP 、PHP、JSP 環(huán)境下, HTML 代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的 HTML 頁(yè)面只依賴于 Web 服務(wù)器,而 ASP 、PHP、JSP 頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML 代碼中,然后一起發(fā)送給瀏覽器。 ASP 、PHP、 JSP三者都是面向 Web 服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。
談?wù)剬?duì)mvc的認(rèn)識(shí)
答: 由模型(model),視圖(view),控制器(controller)完成的應(yīng)用程序 由模型發(fā)出要實(shí)現(xiàn)的功能到控制器,控制器接收組織功能傳遞給視圖;
在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須?
答:heredoc的語(yǔ)法是用"<<<"加上自己定義成對(duì)的標(biāo)簽,在標(biāo)簽范圍內(nèi)的文字視為一個(gè)字符串 例子: $str = <<<EOT this is meizhi520.com; welcome! EOT;
簡(jiǎn)述如何得到當(dāng)前執(zhí)行腳本路徑,包括所得到參數(shù)。
答:$script_name = basename(__FILE__); print_r($script_name);
請(qǐng)說(shuō)明php中傳值與傳引用的區(qū)別。什么時(shí)候傳值什么時(shí)候傳引用?
答: 按值傳遞:函數(shù)范圍內(nèi)對(duì)值的任何改變?cè)诤瘮?shù)外部都會(huì)被忽略 按引用傳遞:函數(shù)范圍內(nèi)對(duì)值的任何改變?cè)诤瘮?shù)外部也能反映出這些修改 優(yōu)缺點(diǎn): 按值傳遞時(shí),php必須復(fù)制值。特別是對(duì)于大型的字符串和對(duì)象來(lái)說(shuō),這將會(huì)是一個(gè)代價(jià)很大的操作。 按引用傳遞則不需要復(fù)制值,對(duì)于性能提高很有好處。
JS表單彈出對(duì)話框函數(shù)是?獲得輸入焦點(diǎn)函數(shù)是?
答:彈出對(duì)話框: 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庫(kù)是做什么用的?
答:gd庫(kù)提供了一系列用來(lái)處理圖片的API,使用GD庫(kù)可以處理圖片,或者生成圖片。 在網(wǎng)站上GD庫(kù)通常用來(lái)生成縮略圖或者用來(lái)對(duì)圖片加水印或者對(duì)網(wǎng)站數(shù)據(jù)生成報(bào)表。
指出一些在PHP輸入一段HTML代碼的辦法。
答:echo "<a href='meizhi520.com'>meizhi520</a>";
下面哪個(gè)函數(shù)可以打開(kāi)一個(gè)文件,以對(duì)文件進(jìn)行讀和寫操作?
(a) fget() (b) file_open() (c) fopen() (d) open_file()
下面哪個(gè)選項(xiàng)沒(méi)有將 john 添加到users 數(shù)組中?
(a) $users[] = 'john'; (b) array_add($users,'john'); (c) array_push($users,'john'); (d) $users ||= 'john';
下面的程序會(huì)輸入是否?
<?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.請(qǐng)打印出第一個(gè)元素的值 答:echo $array[0]; 2.請(qǐng)將數(shù)組的值用','號(hào)分隔并合并成字串輸出 答:for($i=0;$i<count($array);$i++){ echo $array[$i].",";}
$a = 'meizhi520.com'; 請(qǐng)取出$a的值并打印出第一個(gè)字母
答:echo $a{0} 或 echo substr($a,0,1)
PHP可以和sql server/oracle等數(shù)據(jù)庫(kù)連接嗎?
答:當(dāng)然可以
請(qǐng)寫出PHP5權(quán)限控制修飾符
答:public(公共),private(私用),protected(繼承)
請(qǐng)寫出php5的構(gòu)造函數(shù)和析構(gòu)函數(shù)
答:__construct , __destruct