




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Web技術(shù)原理及應(yīng)用Web系統(tǒng)與技術(shù),煙臺(tái)大學(xué)計(jì)算機(jī)學(xué)院 陳智育,第9章 PHP簡(jiǎn)介,2,內(nèi)容,9.1 PHP的起源和用途 9.2 PHP概述 9.3 基本語法特征 9.4 原始類型,操作和表達(dá)式 9.5 輸出 9.6 控制語句 9.7 數(shù)組 9.8 函數(shù),9.10 表單處理 9.11 文件處理 9.12 cookie 9.13 會(huì)話跟蹤,3,9.1 PHP的起源和用途,起源 Rasmus Lerdorf 1994 為記錄個(gè)人網(wǎng)站的訪問者而開發(fā) PHP為開源(open-source)產(chǎn)品 PHP原表示: Personal Home Page PHP現(xiàn)表示: HyperText Preproce
2、ssor PHP用于表單處理, 文件操作, 數(shù)據(jù)庫訪問,4,9.2 PHP概述,PHP為服務(wù)器端腳本語言(環(huán)境). 對(duì)等技術(shù): CGI, ASP, ASP.NET, JSP PHP腳本代碼嵌入在XHTML文檔中. 文檔后綴: .php, .php3, .phtml PHP處理器: 輸入PHP文檔, 輸出XHTML文檔 兩種處理模式: 復(fù)制和解釋 與JavaScipt類似, 只是在服務(wù)器端執(zhí)行 解釋執(zhí)行, 語法, 動(dòng)態(tài)類型,5,9.2 PHP概述,Apache+PHP+MySQL套裝 綠色版, 版本, APM Express,根文檔目錄,http:/localhost,6,9.3 基本語法特征,
3、PHP代碼可在XHTML文檔的內(nèi)部或外部 內(nèi)部: 外部: include(“table2.inc”); 外部文件可包含: PHP代碼, XHTML標(biāo)記,客戶端腳本 PHP代碼必須在中 所有變量名都以$開頭, 區(qū)分大小寫 保留字(P289 表9-1)不區(qū)分大小寫 注釋: 單行用#或/, 多行用/* */ 語句以分號(hào)為結(jié)束,7,9.4 原始類型,操作和表達(dá)式,8種原始類型: 標(biāo)量類型: 整數(shù), 雙精度, 字符串, 布爾型 復(fù)合類型: 數(shù)組, 對(duì)象 特殊類型: 資源, NULL 變量 動(dòng)態(tài)類型, 沒有聲明語句 未賦值(未綁定)變量的值為NULL IsSet函數(shù): 判斷變量是否為NULL unset函
4、數(shù): 設(shè)定變量為NULL 報(bào)告未賦值變量的使用: error_reporting(15,8,9.4 原始類型,操作和表達(dá)式,整數(shù)類型 integer, 相當(dāng)于long(長整型), 一般為32位 雙精度類型 相當(dāng)于double, 一般為64位 字符串類型 沒有字符類型, 字符用長度為1的字符串表示:”A” 可用單引號(hào)()或雙引號(hào)(“)表示字符串 單引號(hào): 不解釋變量($sum)和轉(zhuǎn)義字符(n) 布爾型 兩種取值: TRUE或FALSE(0, “”, “0”,9,9.4 原始類型,操作和表達(dá)式,算術(shù)運(yùn)算符和表達(dá)式 與C類似: +, -, *, /, %, +, - 整數(shù)結(jié)果溢出會(huì)產(chǎn)生雙精度值, 如
5、1/2 用于數(shù)值計(jì)算的預(yù)定義函數(shù)(P292 表9-2) floor, ceil, round, srand, rand, abs, min, max, 字符串操作 連接操作符: . (英文句點(diǎn)) 字符串可看作數(shù)組訪問(索引從0開始): $str3 字符串相關(guān)預(yù)定義函數(shù)(P292 表9-3) strlen,strcmp,strpos,substr,chop,trim,ltrim,strtolower,10,9.4 原始類型,操作和表達(dá)式,標(biāo)量類型轉(zhuǎn)換 隱式或顯式類型轉(zhuǎn)換 隱式轉(zhuǎn)換: 根據(jù)上下文進(jìn)行 字符串上下文, 數(shù)值轉(zhuǎn)為串: ”The sum is” . 100 數(shù)值上下文, 串轉(zhuǎn)為數(shù)值: 3
6、*”100” 雙精度(. , e, E)或整數(shù), 0(轉(zhuǎn)換失敗) 顯式轉(zhuǎn)換(例: $sum=4.777) 圓括號(hào)中指定類型: (int)$sum 使用轉(zhuǎn)換函數(shù): intval($sum) 使用settype函數(shù): settype($sum, “integer”,11,9.4 原始類型,操作和表達(dá)式,標(biāo)量類型轉(zhuǎn)換 判斷變量的類型 使用gettype函數(shù), 返回字符串(“integer”) 使用判斷函數(shù): is_int, is_double, is_string, is_bool 賦值操作符 與C語言類似: = 復(fù)合賦值操作符: +=, -=,12,9.5 輸出,PHP腳本輸出為XHTML代碼(客
7、戶端腳本) 兩種輸出方式: print和printf print函數(shù) 可不用括號(hào): print This is too much fun ; 參數(shù)可以是字符串, 也可為其他類型: print(47); 輸出變量(雙引號(hào)) print “The result is: $result,13,9.5 輸出,printf函數(shù)(類似C語言) 一般格式: printf(格式串, 參數(shù)1, 參數(shù)2, ) 常用格式符: %d, %f, %s 域?qū)? %6d, %5.2f, %10s 例: today.php,14,9.5 輸出,例: today.php,15,9.6 控制語句,和C語言非常類似: 選擇語句,
8、循環(huán)語句 控制表達(dá)式需使用關(guān)系操作符和布爾操作符 關(guān)系操作符 常用: , =, =, !=, = 嚴(yán)格判斷: =, != 布爾操作符(邏輯運(yùn)算符) 類似C: $list1 = “Today”; $list = 45.5,20,9.7 數(shù)組,創(chuàng)建數(shù)組(兩種方式) 使用array結(jié)構(gòu), 指定鍵和值, 逗號(hào)分隔 $list = array(27, 24, 45, 91); /僅值 $list = array(1=27, 2=24, 3=45, 4=91); /鍵和值 $list = array(); /空數(shù)組 $ages = array(“Joe”=42, “Mary”=41); /散列數(shù)組 $ca
9、rs = array(“model”=”C210”, 3=”sold”); /混合 訪問數(shù)組元素 使用下標(biāo): $list0, $agesMary 使用list結(jié)構(gòu): list($a, $b, $c, $d)=$list,21,9.7 數(shù)組,數(shù)組處理函數(shù) unset函數(shù): 刪除數(shù)組或數(shù)組元素 array_keys函數(shù): 提取數(shù)組的鍵 array_values函數(shù): 提取數(shù)組的值,22,9.7 數(shù)組,數(shù)組處理函數(shù) array_key_exists函數(shù): 判斷元素是否存在 if (array_key_exists(Wed, $highs) is_array函數(shù): 判斷變量是否為數(shù)組 in_array
10、函數(shù): 判斷是否為數(shù)組中的值 in_array(17, $list) sizeof函數(shù): 取數(shù)組元素的個(gè)數(shù) expode函數(shù): 分解字符串(P301) $words = explode(“ ”, $str); implode函數(shù): 合并字符串, implode(“_”, $words,P302 圖9-3,23,9.7 數(shù)組,數(shù)組元素的按序訪問 current函數(shù): 引用當(dāng)前指針指向的元素 next函數(shù): 移動(dòng)當(dāng)前指針, 并返回指向的元素 若當(dāng)前指針指向最后一個(gè)元素, 則返回FALSE,問題: 若有元素值為FALSE, 則可能提前終止循環(huán),24,9.7 數(shù)組,數(shù)組元素的按序訪問 each函數(shù):
11、取當(dāng)前元素的值和鍵 返回雙元素?cái)?shù)組, 鍵為”key”和”value” 先返回當(dāng)前元素, 再移動(dòng)指針 若當(dāng)前指針超出數(shù)組, 則返回FALSE,25,9.7 數(shù)組,數(shù)組元素的按序訪問 prev函數(shù): 與next類似, 向前移動(dòng)指針 reset函數(shù): 指針指向第一個(gè)元素, 并返回其值 end函數(shù): 指針指向最后一個(gè)元素, 并返回其值 key函數(shù): 取當(dāng)前元素的鍵 array_push和array_pop函數(shù): 實(shí)現(xiàn)棧 foreach語句循環(huán)處理元素,26,9.7 數(shù)組,數(shù)組排序 sort 函數(shù): 升序排列, 鍵替換, 串在數(shù)前 asort 函數(shù): 升序排列, 鍵保留 ksort 函數(shù): 根據(jù)鍵升序排
12、列, 鍵保留 rsort 函數(shù): sort的反序 arsort 函數(shù): asort的反序 krsort 函數(shù): ksort的反序 例: sorting.php,27,9.7 數(shù)組,例: sorting.php,28,9.8 函數(shù),基本特征 定義格式: functioin 名稱(形參表) 函數(shù)名稱不區(qū)分大小寫 多文檔使用, 放在單獨(dú)文件中, 使用include引入 參數(shù) 實(shí)參數(shù)和形參數(shù)可以不一致 默認(rèn)參數(shù)傳遞機(jī)制是按值傳遞(單向) 引用傳遞(雙向) 形參前加 /局部變量 foreach($list as $value) $sum += $value; return $sum; $sum = 0;
13、 /全局變量 $nums = array(2, 4, 6, 8); $ans = summer($nums,30,9.8 函數(shù),變量的作用域 函數(shù)使用global聲明訪問全局變量,function summer($list) global $sum; /引用全局變量 foreach($list as $value) $sum += $value; return $sum; $sum = 0; /全局變量 $nums = array(2, 4, 6, 8); $ans = summer($nums); $ans = summer($nums,31,9.8 函數(shù),變量的生命期 函數(shù)使用static
14、聲明靜態(tài)局部變量 局部變量在函數(shù)中有效 靜態(tài)局部變量在整個(gè)腳本中有效,function do_it() static $count = 0; $count+; do_it(); do_it(,32,9.10 表單處理,可以在同一個(gè)定義了表單的XHTML文檔中內(nèi)嵌一段PHP腳本處理表單, 但使用分離文檔更好 用的action屬性指定處理表單的文檔 用的method屬性指定數(shù)據(jù)傳遞方法 get: 默認(rèn)方式, 通過URL傳送(P60) post: 長度無限制, 更安全 使用隱含數(shù)組來存取表單值 $_GET, $_POST 表單控件名稱為數(shù)組元素的鍵 $_POST“phone,33,9.10 表單處理
15、,例: 處理銷售表單(POST方法,popcorn3.html,popcorn3.php,34,9.10 表單處理,popcorn3.html 同前面的例子: 表格, 文本框, 單選鈕, 按鈕 需指定處理文檔和提交方法 表單控件的名稱是提取值的鍵,需修改,35,9.10 表單處理,popcorn3.php XHTML文檔主體, 嵌入PHP腳本代碼 處理后形成純XHTML文檔, 送瀏覽器顯示,36,9.10 表單處理,popcorn3.php,37,9.10 表單處理,popcorn3.php,38,9.10 表單處理,popcorn3.php,39,9.11 文件處理,PHP可對(duì)服務(wù)器上的文件
16、進(jìn)行操作 文件打開和關(guān)閉 使用fopen函數(shù)打開文件(模式: P316 表9-4 ) $file_var=fopen(“test.dat”, “r”); $file_var稱為文件變量 失敗處理(FALSE, die) file_exists函數(shù): 判斷文件是否存在 fclose函數(shù): 關(guān)閉文件,40,9.11 文件處理,文件讀取 fread函數(shù): 讀取文件 $file_string = fread($file_var, filesize(“test.dat”); filesize函數(shù): 獲得文件的大小 file 函數(shù): 按行讀取文件, 返回?cái)?shù)組, 不用打開 $file_lines = fil
17、e(“test.dat”); file_get_contents函數(shù): 讀取全文件, 不用打開 $file_string = file_get_contents(“test.dat”); fgets 函數(shù): 讀一行, $line=fgets($file_var, 100); fgetc 函數(shù): 讀一字符; feof函數(shù): 判斷文件尾,41,9.11 文件處理,文件寫入 fwrite 函數(shù): 文件寫入 $bytes = fwrite($file_var, $data, 10); file_put_contents: 文件寫入, 不用打開文件 file_put_contents(“test.dat
18、”, $str); 文件加鎖 由flock函數(shù)完成加鎖和解鎖 參數(shù): 1: 只讀鎖; 2: 全鎖; 3:解鎖,可省略,42,9.12 cookie,Web應(yīng)用(HTTP)本身是無狀態(tài)的(stateless) 而圖形界面和事務(wù)處理都需狀態(tài)驅(qū)動(dòng) 如: 登陸-購物-付款 通過客戶端或服務(wù)器存儲(chǔ)信息以維持狀態(tài) cookie: 在客戶端存儲(chǔ)某網(wǎng)站的信息, 如密碼 會(huì)話(session): 在服務(wù)器存儲(chǔ)一次訪問的信息,如購物車 類似通常程序中的全局變量,43,9.12 cookie,一個(gè)cookie為一個(gè)名稱/值對(duì), 通過HTTP頭部在瀏覽器和服務(wù)器(特地)間傳遞 PHP中使用setcookie函數(shù)創(chuàng)建cookie setcookie(cookie_name, cookie_value, lifetime) setcookie(voted, true, time() + 86400); 當(dāng)生命期結(jié)束, cookie會(huì)自動(dòng)刪除 PHP使用數(shù)組$_COOKIES讀取請(qǐng)求中cookie 瀏覽器可以禁止cookie,44,9.13 會(huì)話跟蹤,會(huì)話(session): 瀏覽器對(duì)服務(wù)器的一次訪問 會(huì)話ID: 每次會(huì)話分配的唯一標(biāo)識(shí), 據(jù)此判斷瀏覽器訪問是否屬于該會(huì)話(隱含傳遞) PHP使用session_start(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)店加盟合同范本
- 市場(chǎng)競(jìng)爭(zhēng)力績(jī)效合同
- 綠化養(yǎng)護(hù)管理制度合同
- 鋁材批發(fā)安裝合同范本
- 私人股份協(xié)議合同范本
- 餐館裝修采購合同范本
- 農(nóng)村擺攤賣房合同范本
- 委托圖文制作合同范本
- 木板購銷合同范本
- 酒店熱水合同范本
- 2025至2030中國超前和靶向藥物輸送行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 中文版兒童睡眠習(xí)慣問卷CSHQ 含評(píng)分維度
- 戰(zhàn)士留疆考試題及答案大全
- GB/T 45482-2025企業(yè)綜合能耗確權(quán)核算通則
- 2023年全國保密知識(shí)競(jìng)賽全套復(fù)習(xí)題庫及答案(共460道題)
- (推薦下載)家族性結(jié)腸息肉病教學(xué)課件
- 水生產(chǎn)企業(yè)(自來水公司)安全生產(chǎn)責(zé)任制(含安全手冊(cè))
- 《材料成型裝備及自動(dòng)化》課程大綱
- 臨時(shí)用電JSA分析表
- 如何提高護(hù)士對(duì)患者病情掌握的知曉率
- 議論文閱讀訓(xùn)練 (針對(duì)初一學(xué)生)附答案
評(píng)論
0/150
提交評(píng)論