一、簡答題
1.用PHP打印出今天的時間,格式是2009-9-2 22:21:21 2009-09-02 22:21:21
~~~
date(“Y-m-d H:i:s”,time()); date(“Y-n-j H:i:s”);
~~~
2.有一個網頁地址, 比如PHP開發資源網主頁: http://www.xxx.com/index.html,如何得到它的內容?
~~~
$str = file_get_contents(‘http://www.xxx.com/index.html’);
~~~
3.寫出發貼數最多的十個人名字的SQL,利用下表:members(id,username,posts,pass,email)
~~~
$sql = “select username from members order by posts desc limit 0,10”;
~~~
4.在PHP中error_reporting這個函數有什么作用?
~~~
打開或者關閉錯誤報告 //error_reporting(0); error_reporting(E_ALL ^ E_NOTICE); error_reporting(E_ALL);
~~~
5.func()和@func()之間有什么區別?
~~~
第二個函數調用失敗不會報錯,第一個會報錯
~~~
6.mysql_fetch_row() 和mysql_fetch_assoc()和mysql_fetch_array之間有什么區別?
~~~
第一個是返回結果集中的一行作為索引數組,第二個是返回關聯數組,而第三個既可以返回索引數組也可以返回關聯數組,取決于它的第二個參數 MYSQL_BOTH MYSQL_NUM MYSQL_ASSOC 默認為MYSQL_BOTH
$sql =”select * from table1”;
$result = mysql_query($sql);
mysql_fetch_array($result, MYSQL_NUM);
~~~
7.寫出以下程序的輸出結果
? ?<?
? ? $b=201;
? ? $c=40;
? ? $a= $b>$c?4:5;
? ? echo $a;
? ??>
~~~
答案:4
~~~
8.取得查詢結果集總數的函數是?
~~~
mysql_num_rows($result)
~~~
9.取得增刪改等操作所影響的行數的函數是什么?
~~~
mysql_affected_rows($result) 不寫參數則返回最近一次操作的結果集 失敗返回-1
~~~
10.取得最新一次添加記錄(假設id為主鍵,并且是自增類型)所產生的id的函數是什么?
~~~
mysql_insert_id();如果上一查詢沒有產生 AUTO_INCREMENT 的值,則 mysql_insert_id() 返回 0
~~~
11.$arr = array('james', 'tom', 'symfony'); 請將’jack’添加到$arr數組的開頭,并把jack打印出來
~~~
array_unshift($arr,’jack’); echo $arr[0];
~~~
12.$arr = array('james', 'tom', 'symfony');請將$arr數組的值用’,’分割并合并成字符串輸出?
~~~
echo implode(‘,’,$arr);
~~~
13.$str = ‘jack,james,tom,symfony’; 請將$str用’,’分割,并把分割后的值放到$arr數組中?
~~~
$arr = explode(‘,’,$str);
~~~
14.$arr = array(3,7,2,1,’d’,’abc’); 請將$arr按照從大到小的順序排序,并保持其鍵值不變?
~~~
arsort($arr); print_r($arr);
~~~
15.$mail = “gaofei@163.com”; 請將此郵箱的域(163.com)取出來并打印,看最多能寫出幾種方法?
~~~
echo strstr($mail,'163');
echo substr($mail,7);
$arr = explode("@",$mail); echo $arr[1];
~~~
16.php連接mysql之后,如何設置mysql的字符集編碼為utf8?
~~~
mysql_query(“set names utf8”);
~~~
17.php程序中如何設置當前頁面的編碼為utf-8?
~~~
header(“content-type:text/html;charset=utf-8”);
~~~
18.如果我的網站用的utf-8編碼,為防止亂碼出現,都需要注意哪些地方?
~~~
1數據庫中庫和表都用utf8_general_ci編碼
2 php連接mysql,指定數據庫編碼為utf8 mysql_query(“set names utf8”);
3 php文件指定頭部編碼為utf-8 header(“content-type:text/html;charset=utf-8”);
4網站下所有文件的編碼為utf8
5 html文件指定編碼為utf-8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
~~~
19.php中,如何跳轉到blog/view.php頁面,請用函數實現?
~~~
header(“location:blog/view.php”);
~~~
20.在url中用get傳值的時候,若中文出現亂碼,應該用哪個函數對中文進行編碼?
~~~
urlencode()
~~~
21.用戶在網站表單提交數據的時候,為了防止腳本攻擊(比如用戶輸入<script>alert(111);</script>),php端接收數據的時候,應該如何處理?
~~~
htmlspecialchars($_POST[‘title’]);
~~~
22.寫出兩種對變量加密的函數?
~~~
md5($str); sha1($str);
~~~
23.如何設置一個cookie的名字為username,值為jack,并且讓此cookie一周后失效?
~~~
setcookie(‘username’,’jack’,time()+7*24*3600);
~~~
24.一個瀏覽器做多可以產生多少個cookie,每個cookie文件最大不能超過多少?
~~~
20個,每個做多不超過4K
~~~
25.設置或讀取session之前,需要做什么?
~~~
可以直接在php.ini中開啟session.auto_start = 1或者在頁面頭部用session_start();開啟session,session_start()前面不能有任何輸出,包括空行。
~~~
26.使用setcookie函數前,需要注意什么?
~~~
前面不能有任何輸出,包括空行。
~~~
27.$str=”你好baby好久不見了!”; 如何頁面編碼為utf-8格式,我要截取12個字符,不出現亂碼,應該用什么函數?
~~~
echo $str2 = mb_substr($str,12);
自定義函數吧
~~~
28.如何把2009-9-2 10:30:25變成unix時間戳?
~~~
$unix_time = strtotime("2009-9-2 10:30:25");//變成unix時間戳
echo date("Y-m-d H:i:s",$unix_time);//格式化為正常時間格式
~~~
二、選擇題
1.下面哪個函數可以打開一個文件,以對文件進行讀和寫操作?
~~~
(c)
~~~
? ? (a) fget()??(b) file_open()? ?(c) fopen()? ?(d) open_file()
? ?
2.下面哪個選項沒有將 john 添加到users 數組中?
~~~
(b,d)
~~~
? ? (a) $users[] = ‘john’;
? ? (b) array_add($users,’john’);
? ? (c) array_push($users,‘john’);
? ? (d) $users ||= ‘john’;
? ?
3.下面的程序會輸出什么?(1分)
~~~
c
~~~
? ? <?php
? ?? ?$num = 10;
? ?? ?function multiply(){
? ?? ???$num = $num * 10;
? ?? ?}
? ?? ?multiply();
? ?? ?echo $num;
? ? ?>
? ? (a) 100 (b) 沒有任何輸出 (c) 10 (d) 11
三、答題
1.使用php寫一段簡單查詢,查出所有姓名為“張三”的內容放到一個數組中,并用foreach把張三的信息打印到table表格中。
表名User
Name Tel Content Date
張三 13333663366 大專畢業 2006-10-11
張三 13612312331 本科畢業 2006-10-15
張四 021-55665566 中專畢業 2006-10-15
請根據上面的題目完成代碼:
~~~
$link = mysql_connect(‘localhost’,’root’,’’) or die(‘連接mysql失敗’);
mysql_select_db(‘database1’);
mysql_query(‘set names utf8’);
$sql = “select * from table1 where name=’張三’”;
$result = mysql_query($sql);
while( $row = mysql_fetch_assoc($result) ){
$arr[] = $row;
}
$str .= ‘<table>’;
foreach( $arr as $v ){
$str .= ‘<tr><td>’.$v[‘name’].’</td><td>’.$v[‘age’].’</td><td>’.$v[‘class’].’</td></tr>’;
}
$str .= ‘</table>’;
echo $str;
~~~
2.寫出 SQL語句的格式 : 插入 ,更新 ,刪除 (4分)
? ?表名User
? ?Name Tel Content??Date
? ?張三 13333663366??大專畢業 2006-10-11
? ?張三 13612312331??本科畢業 2006-10-15
? ?張四 021-55665566 中專畢業 2006-10-15
??(a) 有一新記錄(小王 13254748547 高中畢業 2007-05-06)請用SQL語句新增至表中
~~~
$sql = “insert into User(Name,Tel,Content,Date) values(‘小王’,’13254748547’,’ 高中畢業’,’ 2007-05-06’)”;
~~~
??(b) 請用sql語句把張三的時間更新成為當前系統時間
~~~
$sql = “update User set Date=’”.time().”’ Where Name=’張三’”;
~~~
??(c) 請寫出刪除名為張四的全部記錄
~~~
$sql = “delete from User where Name=’張四’”;
~~~
3.以下請用PHPMYADMIN完成
(一)創建新聞發布系統,表名為message有如下字段 (3分)
id 文章id
title 文章標題
content 文章內容
category_id 文章分類id
hits 點擊量
(二)同樣上述新聞發布系統:表comment記錄用戶回復內容,字段如下 (4分)
comment_id 回復id
id 文章id,關聯message表中的id
comment_content 回復內容
現通過查詢數據庫需要得到以下格式的文章標題列表,并按照回復數量排序,回復最高的排在最前面
文章id 文章標題 點擊量 回復數量
用一個SQL語句完成上述查詢,如果文章沒有回復則回復數量顯示為0
SELECT t. * , (
SELECT count( * )
FROM COMMENT tt
WHERE tt.id = t.id
)num
FROM `message` t order by num desc
LIMIT 0 , 30 ;
(三)上述內容管理系統,表category保存分類信息,字段如下
category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
用戶輸入文章時,通過選擇下拉菜單選定文章分類
寫出如何實現這個下拉菜單
~~~
Function selectCategory($arr)
{
If( empty($arr) ){
Return “<select name=’category’><option>暫無分類</option></select>”;
}
$str = “<select name=’category’><option>文章分類</option>”;
Foreach($arr as $v){
$str.=“<option value=’”.$v[‘category_id’].”’>”.$v[‘category_name’].”</option>”;
}
$str .= “</select>”;
Return $str;
}
~~~