- 相關(guān)推薦
php筆試題附帶詳細(xì)答案
1、用PHP打印出前一天的時(shí)間格式是2006-5-10 22:21:21
解:echo date(‘Y-n-d H:i:s’, strtotime(‘-1 day’));
原因:
format 字符說明返回值例子a小寫的上午和下午值am 或 pmA大寫的上午和下午值A(chǔ)M 或 PMd月份中的第幾天,有前導(dǎo)零的 2 位數(shù)字01 到 31D星期中的第幾天,文本表示,3 個(gè)字母Mon 到 SunF月份,完整的文本格式,例如 January 或者 MarchJanuary 到 Decemberg小時(shí),12 小時(shí)格式,沒有前導(dǎo)零1 到 12G小時(shí),24 小時(shí)格式,沒有前導(dǎo)零0 到 23h小時(shí),12 小時(shí)格式,有前導(dǎo)零01 到 12H小時(shí),24 小時(shí)格式,有前導(dǎo)零00 到 23i有前導(dǎo)零的分鐘數(shù)00 到 59>I是否為夏令時(shí)如果是夏令時(shí)為 1,否則為 0j月份中的第幾天,沒有前導(dǎo)零1 到 31l(“L”的小寫字母)星期幾,完整的文本格式Sunday 到 SaturdayL是否為閏年如果是閏年為 1,否則為 0m數(shù)字表示的月份,有前導(dǎo)零01 到 12M三個(gè)字母縮寫表示的月份Jan 到 Decn數(shù)字表示的月份,沒有前導(dǎo)零1 到 12O與格林威治時(shí)間相差的小時(shí)數(shù)例如:+0200rRFC 822 格式的日期例如:Thu, 21 Dec 2000 16:01:07 +0200s秒數(shù),有前導(dǎo)零00 到 59>S每月天數(shù)后面的英文后綴,2 個(gè)字符st,nd,rd 或者 th,
php筆試題附帶詳細(xì)答案
。可以和 j 一起用。t給定月份所應(yīng)有的天數(shù)28 到 31T本機(jī)所在的時(shí)區(qū)例如:EST,MDT(【譯者注】在 Windows 下為完整文本格式,例如“Eastern Standard Time”,中文版會(huì)顯示“中國標(biāo)準(zhǔn)時(shí)間”)。w星期中的第幾天,數(shù)字表示0(表示星期天)到 6(表示星期六)WISO-8601 格式年份中的第幾周,每周從星期一開始(PHP 4.1.0 新加的)例如:42(當(dāng)年的第 42 周)Y4 位數(shù)字完整表示的年份例如:1999 或 2003y2 位數(shù)字表示的年份例如:99 或 03z年份中的第幾天0 到 3662、能夠使HTML和PHP分離開使用的模板
解:其實(shí)PHP本身就是一種模版引擎,我用過的是smarty,常見的還有PHPLib,FastTemplate,Savant這里有個(gè)模板引擎列表
:http://www.sitepoint.com/forums/showthread.php?t=123769
3、使用哪些工具進(jìn)行版本控制?
解:CVS 和SVN,SVN號(hào)稱下一代CVS,功能強(qiáng)大,不過CVS是老牌,市占率很高.我一直用SVN,題目是問用什么工具,呃,這個(gè)可能需要這么回答:CVS Server on Apache作服務(wù)端,WinCVS作客戶端;Subversion on Apache/DAV 做服務(wù)端,TortoiseSVN做客戶端,或者Subclipse做客戶端.
4、如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?
解: 用strrev函數(shù),不準(zhǔn)用PHP內(nèi)置的就自己寫:
function strrev($str)
{
$len=strlen($str);
$newstr = "";
for($i=$len;$i>=0;$i–)
{
$newstr .= $str{$i};
}
return $newstr;
}
5、優(yōu)化MYSQL數(shù)據(jù)庫的方法?
我的答案:
(1).數(shù)據(jù)庫設(shè)計(jì)方面,這是DBA和Architect的責(zé)任,設(shè)計(jì)結(jié)構(gòu)良好的數(shù)據(jù)庫,必要的時(shí)候,去正規(guī)化(英文是這個(gè):denormalize,中文翻譯成啥我不知道),允許部分?jǐn)?shù)據(jù)冗余,避免JOIN操作,以提高查詢效率
(2).系統(tǒng)架構(gòu)設(shè)計(jì)方面,表散列,把海量數(shù)據(jù)散列到幾個(gè)不同的表里面.快慢表,快表只留最新數(shù)據(jù),慢表是歷史存檔.集群,主服務(wù)器Read &
write,從服務(wù)器read only,或者N臺(tái)服務(wù)器,各機(jī)器互為Master
(3).(1)和(2)超越PHP Programmer的要求了,會(huì)更好,不會(huì)沒關(guān)系.檢查有沒有少加索引
(4).寫高效的SQL語句,看看有沒有寫低效的SQL語句,比如生成笛卡爾積的全連接啊,大量的Group By和order by,沒有l(wèi)imit等等.必要的時(shí)候,把數(shù)據(jù)庫邏輯封裝到DBMS端的存儲(chǔ)過程里面.緩存查詢結(jié)果,explain每一個(gè)sql語句
(5). 所得皆必須,只從數(shù)據(jù)庫取必需的數(shù)據(jù),比如查詢某篇文章的評(píng)論數(shù),select count(*) … where article_id = ? 就可以了,不要先select * … where article_id = ?然后msql_num_rows.只傳送必須的SQL語句,比如修改文章的時(shí)候,如果用戶只修改了標(biāo)題,那就update … set title = ? where article_id = ?不要set content = ?(大文本)
(6).必要的時(shí)候用不同的存儲(chǔ)引擎.比如InnoDB可以減少死鎖.HEAP可以提高一個(gè)數(shù)量級(jí)的查詢速度.
6、談?wù)勈聞?wù)處理?
解:如同是個(gè)編程語言都會(huì)有答應(yīng)Hello World的例子一樣,是本數(shù)據(jù)庫的教材都會(huì)講A給B的賬戶轉(zhuǎn)賬50美元的例子,回答這個(gè)就好了.不過據(jù)我所知,用MySQL的企業(yè),很少用MySQL來實(shí)現(xiàn)事務(wù)處理.何況現(xiàn)在Oracle收購了InnoDB的公司.
7、apache+mysql+php實(shí)現(xiàn)最大負(fù)載的方法
8、實(shí)現(xiàn)中文字串截取無亂碼的方法,
資料共享平臺(tái)
《php筆試題附帶詳細(xì)答案》(http://www.oriental01.com)。解:mb_substr()
9、echo(),print(),print_r()的區(qū)別
解:echo是語言結(jié)構(gòu),無返回值;print功能和echo基本相同,不同的是print是函數(shù),有返回值;print_r是遞歸打印,用于輸出數(shù)組對(duì)象
10、在PHP中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在預(yù)定義變量什么中;而鏈接到當(dāng)前頁面的URL記錄在預(yù)定義變量什么中。
解:echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"];
11、執(zhí)行程序段將輸出??
解:0
12、在HTTP 1.0中,狀態(tài)碼 401 的含義是什么;如果返回“找不到文件”的提示,則可用 header 函數(shù),其語句為什么。
解:未授權(quán) header(“HTTP/1.0 404 Not Found”);
13、數(shù)組函數(shù) arsort 的作用是(對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系);語句 error_reporting(2047)的作用是(All errors and warnings)。
14、PEAR中的數(shù)據(jù)庫連接字符串格式是()?
15、寫出一個(gè)正則表達(dá)式,過慮網(wǎng)頁上的所有JS/VBS腳本(即把script標(biāo)記及其內(nèi)容都去掉):( /
16、以Apache模塊的方式安裝PHP,在文件http.conf中首先要用語句(1)動(dòng)態(tài)裝載PHP模塊,然后再用語句(2)使得Apache把所有擴(kuò)展名為php的文件都作為PHP腳本處理。
解:(1) LoadModule php5_module “D:/xampp/apache/bin/php5apache2.dll” (2) AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
17、語句 include 和 require 都能把另外一個(gè)文件包含到當(dāng)前文件中,它們的區(qū)別是什么;為了避免多次包含同一文件,可以用語句()來代替它們。
解:發(fā)生異常時(shí)include產(chǎn)生警告require產(chǎn)生致命錯(cuò)誤 (13) require_once()/include_once()
18、類的屬性可以序列化后保存到 session 中,從而以后可以恢復(fù)整個(gè)類,這要用到的函數(shù)是( serialize() /unserialize() )
19、一個(gè)函數(shù)的參數(shù)不能是對(duì)變量的引用,除非在php.ini中把(allow_call_time_pass_reference)設(shè)為on.
20、SQL 中LEFT JOIN的含義是(自然左外連接)。
如果 tbl_user記錄了學(xué)生的姓名(name)和學(xué)號(hào)(ID),
tbl_score記錄了學(xué)生(有的學(xué)生考試以后被開除了,沒有其記錄)的學(xué)號(hào)(ID)和考試成績(score)以及考試科目(subject),
要想打印出各個(gè)學(xué)生姓名及對(duì)應(yīng)的的各科總成績,則可以用SQL語句:select name , count(score) as sum_score from tbl_user left join tbl_score on tbl_user.ID=tbl_score.ID group by tbl_user.ID
21、在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須(結(jié)束標(biāo)識(shí)符所在的行不能包含任何其它字符除”;”)。
22、寫一個(gè)函數(shù),能夠遍歷一個(gè)文件夾下的所有文件和子文件夾。
解
/** * 遍歷目錄,結(jié)果存入數(shù)組。支持php4及以上。php5以后可用scandir()函數(shù)代替while循環(huán)。 * @param string $dir * @return array */
function my_scandir($dir)
{
$files = array();
if ( $handle = opendir($dir) ) {
while ( ($file = readdir($handle)) !== false ) {
if ( $file != ".." && $file != "." ) {
if ( is_dir($dir . "/" . $file) ) {
$files[$file] = rec_scandir($dir . "/" . $file);
}else {
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
23、簡述論壇中無限分類的實(shí)現(xiàn)原理。
24、設(shè)計(jì)一個(gè)網(wǎng)頁,使得打開它時(shí)彈出一個(gè)全屏的窗口,該窗口中有一個(gè)文本框和一個(gè)按鈕。用戶在文本框中輸入信息后點(diǎn)擊按鈕就可以把窗口關(guān)閉,而輸入的信息卻在主網(wǎng)頁中顯示。
【php筆試題附帶詳細(xì)答案】相關(guān)文章:
PHP筆試題及答案06-06
PHP筆試題含答案06-26
最新PHP筆試題目及答案05-25
PHP面試題附答案08-17
比較基礎(chǔ)的php面試題及答案06-20
PHP經(jīng)典筆試題08-24
PHP筆試題08-24
經(jīng)典PHP筆試題09-16
六道php面試題附答案06-18