常见的php笔试题(附答案)搜集整理
轉(zhuǎn)載鏈接:http://www.yaojinbu.com/p/139.html
常見的php筆試題(附答案)搜集整理
1.在PHP中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在哪個預(yù)定義變量中?而鏈接到當(dāng)前頁面的URL又記錄在哪個預(yù)定義變量中?
答:echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"];
2.執(zhí)行程序段<?php echo 8%(-2) ?>將輸出什么?
答:0
3.在HTTP 1.0中,狀態(tài)碼 401 的含義是什么;如果返回“找不到文件”的提示,則可用 header 函數(shù),其語句是什么?
答:狀態(tài)碼401的含義是未授權(quán); header(“HTTP/1.0 404 Not Found”)。
4.數(shù)組函數(shù) arsort 的作用是什么;語句 error_reporting(2047)的作用是什么?
答:arsort的作用是對數(shù)組進(jìn)行逆向排序并保持索引關(guān)系;All errors and warnings。
5.寫出一個正則表達(dá)式,過慮網(wǎng)頁上的所有JS腳本(即把標(biāo)記及其內(nèi)容都去掉)?
答:/<[^>].*?>.*?<\/>/si
6.以Apache模塊的方式安裝PHP,在文件http.conf中首先要用什么語句動態(tài)裝載PHP模塊,然后再用什么語句使得Apache把所有擴(kuò)展名為php的文件都作為PHP腳本處理?
答:LoadModule php5_module “D:/xampp/apache/bin/php5apache2.dll”;
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
7.語句 include 和 require 都能把另外一個文件包含到當(dāng)前文件中,它們的區(qū)別是什么?為了避免多次包含同一文件,可以用什么語句來代替它們?
答:發(fā)生異常時include產(chǎn)生警告,require產(chǎn)生致命錯誤;可以用require_once()/include_once()來替代他們。
8.類的屬性可以序列化后保存到 session 中,從而以后可以恢復(fù)整個類,這要用到哪個函數(shù)?
答:serialize() /unserialize()
9.要使得一個函數(shù)的參數(shù)可以是對變量的引用,那么需要在php.ini中做何設(shè)置?
答:allow_call_time_pass_reference 設(shè)置為 on 即可。
10.SQL 中LEFT JOIN的含義是什么?如果 tbl_user記錄了學(xué)生的姓名(name)和學(xué)號(ID),tbl_score記錄了學(xué)生(有的學(xué)生考試以后被開除了,沒有其記錄)的學(xué)號(ID)和考試成績(score)以及考試科目(subject),要想打印出各個學(xué)生姓名及對應(yīng)的的各科總成績,其SQL語句是什么?
答:自然左外連接;
對應(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
11.在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志有什么要求?
答:結(jié)束標(biāo)識符所在的行不能包含除”;”外的任何其它字符。
12.用PHP打印出前一天的時間格式(如 2006-5-10 22:21:21)?
答:echo date(‘Y-m-d H:i:s’, strtotime(‘-1 day’));
13.echo(),print(),print_r()的區(qū)別?
答:echo是語言結(jié)構(gòu),無返回值;print功能和echo基本相同,不同的是print是函數(shù),有返回值;print_r是遞歸打印,用于輸出數(shù)組對象。
14.如何實現(xiàn)字符串翻轉(zhuǎn)?
答:用strrev函數(shù);
不準(zhǔn)用PHP內(nèi)置函數(shù)的話還自己寫:
strrev($str){$len=strlen($str);$newstr = '';for($i=$len;$i>=0;$i--){$newstr .= $str{$i};}return $newstr; }15.實現(xiàn)中文字符串截取無亂碼的函數(shù)是什么?
答:mb_substr()。
16.使用php寫一段簡單數(shù)據(jù)庫查詢,查出所有姓名為“張三”的內(nèi)容并打印出來。
表名 ? ?User
Name ? ? Tel ? ? ? ? ? ? ? ? ? ? Content ? ? ? ? Date
張三 ? ? ? ?13333663366 ? ? 大專畢業(yè) ? ? ? ?2006-10-11
張三 ? ? ? ?13612312331 ? ? 本科畢業(yè) ? ? ? ?2006-10-15
張四 ? ? ? ?021-55665566 ? 中專畢業(yè) ? ? ? ?2006-10-15
答:SELECT Name,Tel,Content,Date FROM User WHERE Name=’張三’;
17.如何使用下面的類,并解釋下面的代碼想要完成的任務(wù)?
class test {get_test($num){$num=md5(md5($num)."En");return $num;} }答:用法:
$get_test = new test();
$result = $get_test->get_test(2);
作用:
將$num變量進(jìn)行兩次md5后返回,第2次的md5中的參數(shù),在第一次md5($num)后多加了En
18.使用五種以上方式獲取一個文件的擴(kuò)展名(要求:dir/upload.image.jpg,找出 .jpg 或者 jpg )
答:
1)
get_ext1($file_name) {return strrchr($file_name, '.'); }2)
get_ext2($file_name) {return substr($file_name, strrpos($file_name, '.')); }3)
get_ext3($file_name) {return array_pop(explode('.', $file_name)); }4)
get_ext4($file_name) {$p = pathinfo($file_name);return $p['extension']; }5)
get_ext5($file_name) {return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.'))); }19.如何修改SESSION的生存時間?
答:其實 Session 還提供了一個函數(shù) session_set_cookie_params(); 來設(shè)置 Session 的生存時間,該函數(shù)必須在 session_start() 函數(shù)調(diào)用之前調(diào)用:
<?php// 保存一天$lifeTime = 24 * 3600;session_set_cookie_params($lifeTime);session_start();$_SESSION["admin"] = true; ?>20. 請寫一個函數(shù),實現(xiàn)以下功能: 字符串“open_door” 轉(zhuǎn)換成 “OpenDoor”、”make_by_id” 轉(zhuǎn)換成 ”MakeById”。
答:代碼如下:
<?phpfunction test($str){$arr = explode('_',$str);array_walk($arr,function(&$item,$key){$item = ucfirst($item);});return implode($arr);}$aa='open_door';echo test($aa); ?>21. 如何用php的環(huán)境變量得到一個網(wǎng)頁地址的內(nèi)容?ip地址又要怎樣得到?
答:$_SERVSR['REQUEST_URI'];$_SERVER['REMOTE_ADDR']
22.求兩個日期的差數(shù),例如2007-2-5 ~ 2007-3-6 的日期差數(shù)?
答:(strtotime(‘2007-3-6’)-strtotime(‘2007-2-5’))/3600*24
23.表中有A B C三列,用SQL語句實現(xiàn):當(dāng)A列大于B列時選擇A列否則選擇B列,當(dāng)B列大于C列時選擇B列否則選擇C列。
答:select case when A>B then A else B end,case when B>C then B else C end?from test;
24.請簡述項目中優(yōu)化sql語句執(zhí)行效率的方法,從哪些方面,sql語句性能如何分析?
答:(1)選擇最有效率的表名順序;(2)WHERE子句中的連接順序;(3)SELECT子句中避免使用‘*’;(4)用Where子句替換HAVING子句;(5)通過內(nèi)部函數(shù)提高SQL效率;(6)避免在索引列上使用計算;(7)提高GROUP BY 語句的效率, 可以通過將不需要的記錄在GROUP BY 之前過濾掉。
25.mysql_fetch_row() 和 mysql_fetch_array() 有什么分別?
mysql_fetch_row() 把數(shù)據(jù)庫的一列儲存在一個以零為基數(shù)的陣列中,第一欄在陣列的索引 0,第二欄在索引 1,如此類推。mysql_fetch_assoc() 把數(shù)據(jù)庫的一列儲存在一個關(guān)聯(lián)陣列中,陣列的索引就是欄位名稱,例如我的數(shù)據(jù)庫查詢送回“first_name”、“l(fā)ast_name”、“email”三個欄位,陣列的索引便是“first_name”、“l(fā)ast_name”和“email”。mysql_fetch_array() 可以同時送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。
26.下面的代碼用來做什么?請解釋。
$date='08/26/2003'; print ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","\\2/\\1/\\3",$date);這是把一個日期從 MM/DD/YYYY 的格式轉(zhuǎn)為 DD/MM/YYYY 格式。我的一個好朋友告訴我可以把這個正規(guī)表達(dá)式拆解為以下的語句,對于如此簡單的表示是來說其實無須拆解,純粹為了解說的方便:
// 對應(yīng)一個或更多 0-9,后面緊隨一個斜號$regExpression = “([0-9]+)/”;// 應(yīng)一個或更多 0-9,后面緊隨另一個斜號$regExpression .= “([0-9]+)/”;// 再次對應(yīng)一個或更多 0-9$regExpression .= “([0-9]+)”;至于 \\2/\\1/\\3 則是用來對應(yīng)括號,第一個括號對的是月份。
27.GD 函數(shù)庫用來做什么?
答:這個函數(shù)庫讓你處理和顯示各種格式的圖像,它的另一個常見用途是制作圖像。GD 以外的另一個選擇是 ImageMagick或者GMagick,但這兩個函數(shù)庫并不內(nèi)建于 PHP 之中,必須由系統(tǒng)管理員安裝在服務(wù)器上。
28.請舉例說明在你的開發(fā)過程中用什么方法來加快頁面的加載速度?
答:要用到服務(wù)器資源時才打開,及時關(guān)閉服務(wù)器資源,數(shù)據(jù)庫添加索引,頁面可生成靜態(tài),圖片等大文件單獨服務(wù)器等。
29.防止SQL注入漏洞一般用addslashes函數(shù)。
30.PHP中傳值和傳引用、傳地址的區(qū)別是什么?
答:傳值是把實參的值賦值給行參,那么對行參的修改,不會影響實參的值;傳地址是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的如int 那么傳地址以后,實參和行參都指向同一個對象。
31.如何通過javascript判斷一個窗口是否已經(jīng)被屏蔽?
答:獲取open()的返回值,如果是null,就是屏蔽了。
32.對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?
答:首先,確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量;其次,優(yōu)化數(shù)據(jù)庫訪問;第三,禁止外部的盜鏈;第四,控制大文件的下載;第五,使用不同主機分流主要流量;第六,使用流量分析統(tǒng)計軟件。
本文整理自網(wǎng)絡(luò),轉(zhuǎn)載請注明出處:http://www.yaojinbu.com/p/139.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的常见的php笔试题(附答案)搜集整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在linux中用高斯09优化分子结构,高
- 下一篇: 【干货】java参考文献论文类