填空題:
1.在PHP中,當前腳本的名稱(不包括路徑和查詢字元串)記錄在預定義變量__$_SERVER['PHP_SELF']__中;而連結到當前頁面的URL記錄在預定義變量__$_SERVER['HTTP_REFERER']__
中
2.執行程序段將輸出__0__。
3.在HTTP 1.0中,狀態碼 401 的含義是____;如果返回“找不到檔案”的提示,則可用 header 函數,其語句爲____。
4.數組函數 arsort 的作用是__對數組進行逆向排序並保持索引關係__;語句 error_reporting(2047)的作用是__報告所有錯誤和警告__。
中的數據庫連接字元串格式是____。
6.寫出一個正則表達式,過慮網頁上的所有JS/VBS腳本(即把scrīpt標記及其內容都去掉):preg_replace(“//si”, “newinfo”, $script);
7.以Apache模組的方式安裝PHP,在檔案中首先要用語句____動態裝載PHP模組,然後再用語句____使得Apache把所有副檔名爲php的檔案都作爲PHP腳本處理。
LoadModule php5_module “c:/php/” , AddType application/x-httpd-php ,
8.語句 include 和 require 都能把另外一個檔案包含到當前檔案中,它們的區別是____;爲了避免多次包含同一檔案,可以用語句__require_once||include_once__來代替它們。
9.類的屬性可以序列化後儲存到 session 中,從而以後可以恢復整個類,這要用到的函數是____。
10.一個函數的參數不能是對變量的引用,除非在中把__allow_call_time_pass_reference boolean__設爲on.
中LEFT JOIN的含義是__自然左外連結__。如果 tbl_user記錄了學生的姓名(name)和學號(ID),tbl_score記錄了學生(有的學生考試以後被開除了,沒有其記錄)的學號(ID)
和考試成績(score)以及考試科目(subject),要想打印出各個學生姓名及對應的的.各科總成績,則可以用SQL語句____。
12.在PHP中,heredoc是一種特殊的字元串,它的結束標誌必須____。
編程題:
13.寫一個函數,能夠遍歷一個檔案夾下的所有檔案和子檔案夾。
答:
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.簡述論壇中無限分類的實現原理。
答:
/*
數據表結構如下:
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, ‘一級類別’),
(1, ‘二級類別’),
(1, ‘二級類別’),
(1, ‘二級類別’),
(2, ‘三級類別’),
(2, ’333332′),
(2, ’234234′),
(3, ‘aqqqqqd’),
(4, ‘哈哈’),
(5, ’66333666′);
*/
//指定分類id變量$category_id,然後返回該分類的所有子類
//$default_category爲默認的選中的分類
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 “n”;
}
else
{
echo “>” . $category['name'] . “n”;
}
Get_Category($key, $level + 1, $default_category);
}
unset($category_array[$category_id]);
}
/*
函數返回的數組格式如下所示:
Array
(
[1] => Array ( [id] => 1 [name] => 一級類別 [level] => 0 [ParentID] => 0 )