2018 BAT最新 php面試必考題(3)

編程題:

1. 寫一個(gè)函數(shù)借杰,盡可能高效的,從一個(gè)標(biāo)準(zhǔn) url 里取出文件的擴(kuò)展名

例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

答案1:

function getExt($url){

$arr = parse_url($url);

$file = basename($arr['path']);

$ext = explode(".",$file);

return $ext[1];

}

答案2:

function getExt($url) {

$url = basename($url);

$pos1 = strpos($url,".");

$pos2 = strpos($url,"?");

if(strstr($url,"?")){

return substr($url,$pos1 + 1,$pos2 - $pos1 - 1);

} else {

return substr($url,$pos1);

}

}

2. 在 HTML 語(yǔ)言中,頁(yè)面頭部的 meta 標(biāo)記可以用來(lái)輸出文件的編碼格式磁奖,以下是一個(gè)標(biāo)準(zhǔn)的 meta 語(yǔ)句

請(qǐng)使用 PHP 語(yǔ)言寫一個(gè)函數(shù)破加,把一個(gè)標(biāo)準(zhǔn) HTML 頁(yè)面中的類似 meta 標(biāo)記中的 charset 部分值改為 big5

請(qǐng)注意:

1. 需要處理完整的 html 頁(yè)面贡必,即不光此 meta 語(yǔ)句

2. 忽略大小寫

3. ' 和 " 在此處是可以互換的

4. 'Content-Type' 兩側(cè)的引號(hào)是可以忽略的兔港,但 'text/html; charset=gbk' 兩側(cè)的不行

5. 注意處理多余空格

3. 寫一個(gè)函數(shù),算出兩個(gè)文件的相對(duì)路徑

如 $a = '/a/b/c/d/e.php';

$b = '/a/b/12/34/c.php';

計(jì)算出 $b 相對(duì)于 $a 的相對(duì)路徑應(yīng)該是 ../../c/d將()添上

答:function getRelativePath($a, $b) {

$returnPath = array(dirname($b));

$arrA = explode('/', $a);

$arrB = explode('/', $returnPath[0]);

for ($n = 1, $len = count($arrB); $n < $len; $n++) {

if ($arrA[$n] != $arrB[$n]) {

break;

}

}

if ($len - $n > 0) {

$returnPath = array_merge($returnPath, array_fill(1, $len - $n, '..'));

}

$returnPath = array_merge($returnPath, array_slice($arrA, $n));

return implode('/', $returnPath);

}

echo getRelativePath($a, $b);

填空題:

1.在PHP中仔拟,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在預(yù)定義變量__$_SERVER['PHP_SELF']__中;而鏈接到當(dāng)前頁(yè)面的URL記錄在預(yù)定義變量__$_SERVER['HTTP_REFERER']__

2.執(zhí)行程序段將輸出__0__衫樊。

3.在HTTP 1.0中,狀態(tài)碼 401 的含義是____;如果返回“找不到文件”的提示利花,則可用 header 函數(shù)科侈,其語(yǔ)句為____。

4.數(shù)組函數(shù) arsort 的作用是__對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系__;語(yǔ)句 error_reporting(2047)的作用是__報(bào)告所有錯(cuò)誤和警告__炒事。

5.PEAR中的數(shù)據(jù)庫(kù)連接字符串格式是____臀栈。

6.寫出一個(gè)正則表達(dá)式,過(guò)慮網(wǎng)頁(yè)上的所有JS/VBS腳本(即把scrīpt標(biāo)記及其內(nèi)容都去掉):preg_replace("/].*?>.*?/si", "newinfo", $script);

7.以Apache模塊的方式安裝PHP挠乳,在文件http.conf中首先要用語(yǔ)句____動(dòng)態(tài)裝載PHP模塊权薯,然后再用語(yǔ)句____使得Apache把所有擴(kuò)展名為php的文件都作為PHP腳本處理。

LoadModule php5_module "c:/php/php5apache2.dll" , AddType application/x-httpd-php .php,

8.語(yǔ)句 include 和 require 都能把另外一個(gè)文件包含到當(dāng)前文件中睡扬,它們的區(qū)別是____;為了避免多次包含同一文件盟蚣,可以用語(yǔ)句__require_once||include_once__來(lái)代替它們。

9.類的屬性可以序列化后保存到 session 中卖怜,從而以后可以恢復(fù)整個(gè)類屎开,這要用到的函數(shù)是____。

10.一個(gè)函數(shù)的參數(shù)不能是對(duì)變量的引用韧涨,除非在php.ini中把__allow_call_time_pass_reference boolean__設(shè)為on.

11.SQL中LEFT JOIN的含義是__自然左外鏈接__牍戚。如果 tbl_user記錄了學(xué)生的姓名(name)和學(xué)號(hào)(ID),tbl_score記錄了學(xué)生(有的學(xué)生考試以后被開除了虑粥,沒(méi)有其記錄)的學(xué)號(hào)(ID)

和考試成績(jī)(score)以及考試科目(subject),要想打印出各個(gè)學(xué)生姓名及對(duì)應(yīng)的的各科總成績(jī)宪哩,則可以用SQL語(yǔ)句____娩贷。

12.在PHP中,heredoc是一種特殊的字符串锁孟,它的結(jié)束標(biāo)志必須____彬祖。

編程題:

13.寫一個(gè)函數(shù),能夠遍歷一個(gè)文件夾下的所有文件和子文件夾品抽。

答:

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] = scandir($dir . "/" . $file);

}else {

$files[] = $file;

}

}

}

closedir($handle);

return $files;

}

}

14.簡(jiǎn)述論壇中無(wú)限分類的實(shí)現(xiàn)原理储笑。

答:


/*

數(shù)據(jù)表結(jié)構(gòu)如下:

CREATE TABLE `category` (

`categoryID` smallint(5) unsigned NOT NULL auto_increment,

`categoryParentID` smallint(5) unsigned NOT NULL default '0',

`categoryName` varchar(50) NOT NULL default '',

PRIMARY KEY (`categoryID`)

) ENGINE=MyISAM DEFAULT CHARSET=gbk;

INSERT INTO `category` ( `categoryParentID`, `categoryName`) VALUES

(0, '一級(jí)類別'),

(1, '二級(jí)類別'),

(1, '二級(jí)類別'),

(1, '二級(jí)類別'),

(2, '三級(jí)類別'),

(2, '333332'),

(2, '234234'),

(3, 'aqqqqqd'),

(4, '哈哈'),

(5, '66333666');

*/

//指定分類id變量$category_id,然后返回該分類的所有子類

//$default_category為默認(rèn)的選中的分類

function Get_Category($category_id = 0,$level = 0, $default_category = 0)

{

global $DB;

$sql = "SELECT * FROM category ORDER BY categoryID DESC";

$result = $DB->query( $sql );

while ($rows = $DB->fetch_array($result))

{

$category_array[$rows[categoryParentID]][$rows[categoryID]] = array('id' => $rows[categoryID], 'parent' => $rows[categoryParentID], 'name' => $rows

[categoryName]);

}

if (!isset($category_array[$category_id]))

{

return "";

}

foreach($category_array[$category_id] AS $key => $category)

{

if ($category['id'] == $default_category)

{

echo "

}else

{

echo "

}

if ($level > 0)

{

echo ">" . str_repeat( " ", $level ) . " " . $category['name'] . "\n";

}

else

{

echo ">" . $category['name'] . "\n";

}

Get_Category($key, $level + 1, $default_category);

}

unset($category_array[$category_id]);

}

/*

函數(shù)返回的數(shù)組格式如下所示:

Array

(

[1] => Array ( [id] => 1 [name] => 一級(jí)類別 [level] => 0 [ParentID] => 0 )

[4] => Array ( [id] => 4 [name] => 二級(jí)類別 [level] => 1 [ParentID] => 1 )

[9] => Array ( [id] => 9 [name] => 哈哈 [level] => 2 [ParentID] => 4 )

[3] => Array ( [id] => 3 [name] => 二級(jí)類別 [level] => 1 [ParentID] => 1 )

[8] => Array ( [id] => 8 [name] => aqqqqqd [level] => 2 [ParentID] => 3 )

[2] => Array ( [id] => 2 [name] => 二級(jí)類別 [level] => 1 [ParentID] => 1 )

[7] => Array ( [id] => 7 [name] => 234234 [level] => 2 [ParentID] => 2 )

[6] => Array ( [id] => 6 [name] => 333332 [level] => 2 [ParentID] => 2 )

[5] => Array ( [id] => 5 [name] => 三級(jí)類別 [level] => 2 [ParentID] => 2 )

[10] => Array ( [id] => 10 [name] => 66333666 [level] => 3 [ParentID] => 5 )

)

*/

//指定分類id,然后返回?cái)?shù)組

function Category_array($category_id = 0,$level=0)

{

global $DB;

$sql = "SELECT * FROM category ORDER BY categoryID DESC";

$result = $DB->query($sql);

while ($rows = $DB->fetch_array($result))

{

$category_array[$rows['categoryParentID']][$rows['categoryID']] = $rows;

}

foreach ($category_array AS $key=>$val)

{

if ($key == $category_id)

{

foreach ($val AS $k=> $v)

{

$options[$k] =

array(

'id' => $v['categoryID'], 'name' => $v['categoryName'], 'level' => $level, 'ParentID'=>$v['categoryParentID']

);

$children = Category_array($k, $level+1);

if (count($children) > 0)

{

$options = $options + $children;

}

}

}

}

unset($category_array[$category_id]);

return $options;

}

?>


class cate

{

function Get_Category($category_id = 0,$level = 0, $default_category = 0)

{

echo $category_id;

$arr = array(

'0' => array(

'1' => array('id' => 1, 'parent' => 0, 'name' => '1111'),

'2' => array('id' => 2, 'parent' => 0, 'name' => '2222'),

'4' => array('id' => 4, 'parent' => 0, 'name' => '4444')

),

'1' => array(

'3' => array('id' => 3, 'parent' => 1, 'name' => '333333'),

'5' => array('id' => 5, 'parent' => 1, 'name' => '555555')

),

'3' => array(

'6' => array('id' => 6, 'parent' => 3, 'name' => '66666'),

'7' => array('id' => 7, 'parent' => 3, 'name' => '77777')

),

'4' => array(

'8' => array('id' => 8, 'parent' => 4, 'name' => '8888'),

'9' => array('id' => 9, 'parent' => 4, 'name' => '9999')

)

);

if (!isset($arr[$category_id]))

{

return "";

}

foreach($arr[$category_id] AS $key => $cate)

{

if ($cate['id'] == $default_category)

{

$txt = "

}else{

$txt = "

}

if ($level > 0)

{

$txt1 = ">" . str_repeat( "-", $level ) . " " . $cate['name'] . "\n";

}else{

$txt1 = ">" . $cate['name'] . "\n";

}

$val = $txt.$txt1;

echo $val;

self::Get_Category($key, $level + 1, $default_category);

}

}

function getFlush($category_id = 0,$level = 0, $default_category = 0)

{

ob_start();

self::Get_Category($category_id ,$level, $default_category);

$out = ob_get_contents();

ob_end_clean();

return $out;

}

}

$id =$_GET['id'];

echo "";

$c = new cate();

//$c->Get_Category();

$ttt= $c->getFlush($id,'0','3');

echo $ttt;

echo "";

?>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市圆恤,隨后出現(xiàn)的幾起案子突倍,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羽历,死亡現(xiàn)場(chǎng)離奇詭異焊虏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)秕磷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門诵闭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人澎嚣,你說(shuō)我怎么就攤上這事疏尿。” “怎么了易桃?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵润歉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我颈抚,道長(zhǎng)踩衩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任贩汉,我火速辦了婚禮驱富,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匹舞。我一直安慰自己褐鸥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布赐稽。 她就那樣靜靜地躺著叫榕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪姊舵。 梳的紋絲不亂的頭發(fā)上晰绎,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音括丁,去河邊找鬼荞下。 笑死,一個(gè)胖子當(dāng)著我的面吹牛史飞,可吹牛的內(nèi)容都是我干的尖昏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼构资,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抽诉!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起吐绵,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤迹淌,失蹤者是張志新(化名)和其女友劉穎河绽,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巍沙,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葵姥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了句携。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榔幸。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖矮嫉,靈堂內(nèi)的尸體忽然破棺而出削咆,到底是詐尸還是另有隱情,我是刑警寧澤蠢笋,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布拨齐,位于F島的核電站,受9級(jí)特大地震影響昨寞,放射性物質(zhì)發(fā)生泄漏瞻惋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一援岩、第九天 我趴在偏房一處隱蔽的房頂上張望歼狼。 院中可真熱鬧,春花似錦享怀、人聲如沸羽峰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)梅屉。三九已至,卻和暖如春鳞贷,著一層夾襖步出監(jiān)牢的瞬間坯汤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工悄晃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玫霎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓妈橄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親翁脆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子眷蚓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • php面試題及答案(轉(zhuǎn)載)收藏 基礎(chǔ)題: 1.表單中 get與post提交方法的區(qū)別? 答:get是發(fā)送請(qǐng)求HTT...
    積_漸閱讀 1,642評(píng)論 0 37
  • 編程題: 1. 寫一個(gè)函數(shù),盡可能高效的反番,從一個(gè)標(biāo)準(zhǔn) url 里取出文件的擴(kuò)展名 例如:http://www.si...
    dragonwarrior閱讀 739評(píng)論 1 2
  • 編程題: 1. 寫一個(gè)函數(shù)沙热,盡可能高效的叉钥,從一個(gè)標(biāo)準(zhǔn) url 里取出文件的擴(kuò)展名 例如:http://www.si...
    vardump閱讀 957評(píng)論 0 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)篙贸,斷路器投队,智...
    卡卡羅2017閱讀 134,701評(píng)論 18 139
  • 最近喜歡上畫小人頭像 忘記拍過(guò)程圖了
    朱麗jileea閱讀 421評(píng)論 1 2