php網(wǎng)站開(kāi)發(fā)案例教程課件.ppt_第1頁(yè)
php網(wǎng)站開(kāi)發(fā)案例教程課件.ppt_第2頁(yè)
php網(wǎng)站開(kāi)發(fā)案例教程課件.ppt_第3頁(yè)
php網(wǎng)站開(kāi)發(fā)案例教程課件.ppt_第4頁(yè)
php網(wǎng)站開(kāi)發(fā)案例教程課件.ppt_第5頁(yè)
已閱讀5頁(yè),還剩174頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、PHP網(wǎng)站開(kāi)發(fā)案例教程,2180,目錄,第1章 配置PHP開(kāi)發(fā)環(huán)境,第2章 PHP語(yǔ)言基礎(chǔ),第3章 數(shù)組與函數(shù),第4章 字符串與正則表達(dá)式,第5章 構(gòu)建PHP互動(dòng)網(wǎng)頁(yè),第6章 PHP文件編程,第7章 PHP圖像處理,第8章 MySQL數(shù)據(jù)庫(kù)管理,第9章 PHP數(shù)據(jù)庫(kù)編程,第10章 會(huì)員管理系統(tǒng)設(shè)計(jì),3180,第1章 配置PHP開(kāi)發(fā)環(huán)境,1.1 PHP開(kāi)發(fā)組件介紹,1.2 配置PHP開(kāi)發(fā)環(huán)境,4180,1.1 PHP開(kāi)發(fā)組件介紹,1.1.1 Apache服務(wù)器 Apache是一款流行的Web服務(wù)器軟件。據(jù)調(diào)查,目前在Internet 上大約有50%以上的Web服務(wù)器都在用Apache。Apach

2、e功能強(qiáng)大、 性能穩(wěn)定,而且是完全免費(fèi)的,完全開(kāi)放源代碼,可以從Internet 上自由下載。 Apache服務(wù)器的主要特點(diǎn) 支持多種Web編程語(yǔ)言。 安全性高。 擴(kuò)展性好。 UNIX線程。 新的編譯系統(tǒng)。 對(duì)非UNIX平臺(tái)更好的支持。,第1章目錄,5180,1.1 PHP開(kāi)發(fā)組件介紹,1.1.2 PHP語(yǔ)言 PHP是一種流行的開(kāi)放源代碼的Web編程語(yǔ)言,主要用于開(kāi)發(fā) 服務(wù)器端應(yīng)用程序及動(dòng)態(tài)網(wǎng)頁(yè)。 PHP語(yǔ)言的主要特點(diǎn) 開(kāi)放性源代碼。 運(yùn)行于服務(wù)器端。 跨平臺(tái)性。 語(yǔ)言簡(jiǎn)單易學(xué)。 執(zhí)行效率高。 圖像處理功能。 數(shù)據(jù)庫(kù)訪問(wèn)功能。 面向?qū)ο缶幊獭?可伸縮性。,第1章目錄,6180,1.1 PHP開(kāi)

3、發(fā)組件介紹,1.1.3 MySQL數(shù)據(jù)庫(kù) MySQL是目前最受歡迎的開(kāi)源SQL數(shù)據(jù)庫(kù)管理系統(tǒng),它由 MySQL AB開(kāi)發(fā)、發(fā)布和支持。MySQL是一個(gè)快速的、多線程、 多用戶(hù)和健壯的SQL數(shù)據(jù)庫(kù)服務(wù)器。MySQL服務(wù)器支持關(guān)鍵任務(wù)、 重負(fù)載生產(chǎn)系統(tǒng)的使用。MySQL是一款完全免費(fèi)的數(shù)據(jù)庫(kù)產(chǎn)品。 MySQL數(shù)據(jù)庫(kù)服務(wù)器的特點(diǎn) 快速、可靠、易于使用。 工作在客戶(hù)端/服務(wù)器模式下或嵌入式系統(tǒng)中。 真正的多線程。 跨平臺(tái)性。 數(shù)據(jù)類(lèi)型豐富。 安全性好。 處理大型數(shù)據(jù)庫(kù)。 連接性好。,第1章目錄,7180,1.2 PHP開(kāi)發(fā)環(huán)境配置,1.2.1 安裝和測(cè)試Apache Apache的下載網(wǎng)址: http

4、://download.cgi 文件: apache_2.2.4-win32-x86-no_ssl.msi。 1. 安裝Apache服務(wù)器 2. 測(cè)試Apache服務(wù)器 在IE瀏覽器的地址欄輸入以下網(wǎng)址: http:/localhost/,第1章目錄,8180,1.2 PHP開(kāi)發(fā)環(huán)境配置,1.2.2 配置Apache服務(wù)器 1. Listen指令 Listen指令用于設(shè)置Apache服務(wù)器監(jiān)聽(tīng)的IP地址和端口 Listen IP-address:portnumber protocol 2. DocumentRoot指令 DocumentRoot指令用于設(shè)置網(wǎng)站文

5、檔的根目錄 DocumentRoot directory-path 3. Alias指令 Alias指令用于映射指向文件系統(tǒng)某個(gè)物理目錄的URL: Alias URL-path file-path|directory-path 4. DirectoryIndex指令 DirectoryIndex指令用于設(shè)置當(dāng)客戶(hù)端請(qǐng)求一個(gè)目錄時(shí)尋找的資源列表,也就是為網(wǎng)站指定一組默認(rèn)文檔 DirectoryIndex local-url local-url .,第1章目錄,9180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.3 管理Apache服務(wù)器,10180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,

6、1.2.4 安裝和配置PHP 1. 下載和安裝PHP PHP 5.2.3下載網(wǎng)址: 文件: php-5.2.3-Win32.zip。 PHP的安裝: 把zip壓縮包解壓縮到指定的文件夾中,11180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.4 安裝和配置PHP 2. 配置PHP 通過(guò)編輯文件php.ini來(lái)實(shí)現(xiàn)。 把PHP目錄中的php.ini-dist文件復(fù)制到Apache目錄中,把文件php.ini-dist重命名為php.ini。 設(shè)置動(dòng)態(tài)模塊的加載路徑: extension_dir = F:PHPext 設(shè)置PHP的文檔根目錄: doc_root = F:phpdocs 設(shè)置保

7、存會(huì)話信息的目錄: session.save_path = /tmp 設(shè)置錯(cuò)誤信息顯示選項(xiàng): display_errors = On 設(shè)置服務(wù)器默認(rèn)時(shí)區(qū): date.timezone = PRC,12180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.4 安裝和配置PHP 3. 通過(guò)修改httpd.conf文件讓Apache支持PHP CGI二進(jìn)制文件方式: ScriptAlias /php/ F:/php/ AddType application/x-httpd-php .php Action application/x-httpd-php /php/php-cgi.exe“ DLL動(dòng)態(tài)

8、鏈接庫(kù)模塊方式: 把PHP安裝目錄中的php5ts.dll文件復(fù)制到Windows系統(tǒng)的system32文件夾中 LoadModule php5_module F:/php/php5apache2_2.dll AddType application/x-httpd-php .php,13180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.4 安裝和配置PHP 4. 測(cè)試PHP 文件內(nèi)容: 測(cè)試URL: http:/localhost/chap01/page1-01.php 運(yùn)行結(jié)果,14180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.5 安裝和配置MySQL MySQL 5.041

9、的下載網(wǎng)址: 文件名:mysql-essential-5.0.41-win32.msi。 1. 安裝和配置MySQL 結(jié)束安裝并啟動(dòng)MySQL服務(wù)器配置向?qū)?選擇MySQL配置類(lèi)型 選擇數(shù)據(jù)庫(kù)的用途 設(shè)置數(shù)據(jù)庫(kù)的存儲(chǔ)位置 設(shè)置MySQL服務(wù)器的最大并發(fā)連接數(shù) 設(shè)置MySQL的網(wǎng)絡(luò)選項(xiàng) 設(shè)置MySQL默認(rèn)字符集:選擇【Manual Selected Default Character Set/Cllation】,選擇gb2312字符集(簡(jiǎn)體中文)。 設(shè)置MySQL的Windows選項(xiàng):將MySQL作為Windows服務(wù)來(lái)安裝 設(shè)置MySQL服務(wù)器的安全性選項(xiàng),為MySQL的默認(rèn)賬號(hào)root設(shè)置密

10、碼,15180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.5 安裝和配置MySQL 2. 測(cè)試MySQL服務(wù)器,16180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.5 安裝和配置MySQL 3. 通過(guò)PHP連接MySQL服務(wù)器 將PHP目錄下的libmysql.dll文件復(fù)制到F:Apache2.2bin目錄中。 打開(kāi)php.ini文件,對(duì)以下屬性進(jìn)行設(shè)置。 設(shè)置MySQL服務(wù)器的主機(jī)名: mysql.default_host = localhost 設(shè)置MySQL服務(wù)器的端口號(hào): mysql.default_port = 3306 設(shè)置默認(rèn)用戶(hù): mysql.default_u

11、ser = root 設(shè)置默認(rèn)密碼: mysql.default_password = password 啟用PHP對(duì)MySQL的支持模塊: extension = php_mysql.dll,17180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.5 安裝和配置MySQL 3. 通過(guò)PHP連接MySQL服務(wù)器 通過(guò)PHP連接MySQL服務(wù)器 ,18180,1.2 PHP開(kāi)發(fā)環(huán)境配置,第1章目錄,1.2.6 創(chuàng)建PHP MySQL動(dòng)態(tài)站點(diǎn)(在Dreamweaver CS3中),19180,第2章 PHP語(yǔ)言基礎(chǔ),2.1 PHP基本知識(shí),2.2 數(shù)據(jù)類(lèi)型,2.3 變量與常量,2.4 運(yùn)算符與

12、表達(dá)式,2.5 流程控制語(yǔ)句,20180,2.1 PHP基本知識(shí),第2章目錄,2.1.1 PHP動(dòng)態(tài)網(wǎng)頁(yè)概述 PHP動(dòng)態(tài)網(wǎng)頁(yè)就是混合使用PHP和HTML編寫(xiě)的Web頁(yè)面。當(dāng)訪問(wèn)者通 過(guò)客戶(hù)端瀏覽器必出PHP頁(yè)請(qǐng)求時(shí)時(shí),服務(wù)端會(huì)首先對(duì)頁(yè)面中的PHP代碼 進(jìn)行處理,然后把處理后的結(jié)果連同HTML內(nèi)容一起傳送到客戶(hù)端瀏覽器。 1. PHP動(dòng)態(tài)網(wǎng)頁(yè)的內(nèi)容 HTML標(biāo)記;CSS樣式定義;客戶(hù)端腳本;PHP定界符;PHP代碼。 2. PHP動(dòng)態(tài)網(wǎng)頁(yè)的訪問(wèn)方式 PHP動(dòng)態(tài)網(wǎng)頁(yè)過(guò)輸入“http:/”開(kāi)頭的虛擬路徑來(lái)訪問(wèn)。 通過(guò)虛擬路徑訪問(wèn)PHP動(dòng)態(tài)網(wǎng)頁(yè)時(shí),首先通過(guò)Apache服務(wù)器將PHP代碼 轉(zhuǎn)發(fā)給PHP語(yǔ)

13、言引擎進(jìn)行處理,然后將執(zhí)行結(jié)果連同HTML代碼一起發(fā)送 到客戶(hù)端瀏覽器。 如果正在用Dreamweaver創(chuàng)建PHP動(dòng)態(tài)網(wǎng)頁(yè),按下F12鍵即可通過(guò)虛擬路徑方式在瀏覽器中打開(kāi)當(dāng)前正在編輯的PHP動(dòng)態(tài)網(wǎng)頁(yè),而不必用手動(dòng)方式在瀏覽器中輸入虛擬路徑。,21180,2.1 PHP基本知識(shí),第2章目錄,2.1.2 創(chuàng)建PHP代碼塊 PHP定界符 2.1.3 編寫(xiě)PHP注釋 C+風(fēng)格的單行注釋“/” UNIX Shell風(fēng)格的單行注釋“#” C風(fēng)格的多行注釋“/*/”,22180,2.1 PHP基本知識(shí),第2章目錄,2.1.4 PHP與HTML混合編碼 PHP語(yǔ)句在語(yǔ)法上是完全獨(dú)立的單元,但也可以使一個(gè)語(yǔ)句

14、跨越兩個(gè) PHP代碼塊,并在這兩個(gè)代碼塊之間包含HTML代碼或其他非PHP代碼, 此時(shí)PHP將直接輸出上一個(gè)結(jié)束標(biāo)記與下一個(gè)開(kāi)始標(biāo)記之間的任何非PHP 代碼。當(dāng)需要輸出大量HTML內(nèi)容時(shí),退出PHP解析模式比使用echo()、 print()或此類(lèi)函數(shù)輸出這些內(nèi)容更為有效。 2.1.5 PHP與JavaScript協(xié)同工作 在PHP動(dòng)態(tài)網(wǎng)頁(yè)中,既可以包含PHP服務(wù)器端腳本,也可以包含 JavaScript客戶(hù)端腳本,而且這兩種腳本可以協(xié)同工作。 當(dāng)訪問(wèn)者通過(guò)客戶(hù)端瀏覽器發(fā)出對(duì)某個(gè)PHP動(dòng)態(tài)網(wǎng)頁(yè)的請(qǐng)求后,由PHP 在運(yùn)行中按照HTML的語(yǔ)法格式動(dòng)態(tài)生成頁(yè)面,并由服務(wù)器將整個(gè)頁(yè)面的 數(shù)據(jù)發(fā)送給客戶(hù)

15、端瀏覽器,該頁(yè)面中可能包含通過(guò)標(biāo)記 引入的JavaScript客戶(hù)端腳本。在瀏覽器所執(zhí)行的客戶(hù)端JavaScript腳本其 實(shí)是由PHP服務(wù)器端腳本動(dòng)態(tài)生成的。 使用PHP生成或操作客戶(hù)端腳本,可以增強(qiáng)其有效性。,23180,2.2 數(shù)據(jù)類(lèi)型,第2章目錄,PHP語(yǔ)言支持的8種原始數(shù)據(jù)類(lèi)型 4種標(biāo)量類(lèi)型 布爾型(boolean) 整型數(shù)(integer) 浮點(diǎn)數(shù)(float) 字符串(string) 兩種復(fù)合類(lèi)型 數(shù)組(array) 對(duì)象(object) 兩種特殊類(lèi)型 資源(resource) 空值(NULL),24180,2.2 數(shù)據(jù)類(lèi)型,第2章目錄,2.2.1 整型數(shù) 整型數(shù)是集合Z = .

16、, 2, 1, 0, 1, 2, . 中的一個(gè)數(shù)。整型數(shù)包括正整 數(shù)、負(fù)整數(shù)和零。一個(gè)整型數(shù)可以用十進(jìn)制,十六進(jìn)制或八進(jìn)制符號(hào)表示, 前面可以加上可選的符號(hào)(或+)。若用八進(jìn)制符號(hào),則必須在數(shù)字前加 上0;若用十六進(jìn)制符號(hào),則必須在數(shù)字前加上0 x。 整型數(shù)的字長(zhǎng)和平臺(tái)有關(guān)。在32位操作系統(tǒng)中,整型數(shù)的取值范圍是 2 147 483 648+2 147 483 647。若給定的一個(gè)數(shù)超出了整型數(shù)的范圍, 則將被解釋為浮點(diǎn)數(shù);當(dāng)運(yùn)算結(jié)果超出了整型數(shù)范圍時(shí),也會(huì)返回浮點(diǎn)數(shù)。 PHP不支持無(wú)符號(hào)整數(shù)。 ,25180,2.2 數(shù)據(jù)類(lèi)型,第2章目錄,2.2.2 浮點(diǎn)數(shù) 浮點(diǎn)數(shù)也稱(chēng)為雙精度數(shù)或?qū)崝?shù),其取值

17、范圍和精度遠(yuǎn)遠(yuǎn)大于整型數(shù)。 在32位操作系統(tǒng)中,浮點(diǎn)數(shù)的取值范圍為1.7E3081.7E+308(即 1.7103081.710308)。浮點(diǎn)數(shù)可以用小數(shù)形式或科學(xué)計(jì)數(shù)法表示, 在科學(xué)計(jì)數(shù)法中用E或e表示以10為底的冪。 以下給出浮點(diǎn)數(shù)的例子。 ,26180,2.2 數(shù)據(jù)類(lèi)型,第2章目錄,2.2.3 字符串 1. 用單引號(hào)定義字符串 表示一個(gè)字符串的最簡(jiǎn)單方法是用單引號(hào)()括起這個(gè)字符串。若要表示一個(gè) 單引號(hào),需要用反斜線()轉(zhuǎn)義,即表示為“”。 2. 用雙引號(hào)定義字符串 若用雙引號(hào)()括起字符串,則會(huì)使PHP處理更多特殊字符的轉(zhuǎn)義序列。 在用雙引號(hào)定義的字符串中,變量名會(huì)被變量值替代;用花括

18、號(hào)把變量名括起來(lái), 便于變量解析。 轉(zhuǎn)義字符:n:換行;r:回車(chē);t:水平制表符;:反斜線:$:美元符號(hào):雙引號(hào) 3. 用定界符定義字符串 標(biāo)識(shí)符 字符串內(nèi)容 標(biāo)識(shí)符 與雙引號(hào)字符串一樣,使用定界符定義字符串時(shí),在字符串中包含的變量名運(yùn) 行時(shí)將被變量值替代。此外,在這種字符串中,可以直接包含單引號(hào)和雙引號(hào),而 不必進(jìn)行轉(zhuǎn)義。,27180,2.2 數(shù)據(jù)類(lèi)型,第2章目錄,2.2.4 布爾型 布爾型用于表示真值,其取值可以是true或false。布爾值通常用于控制程序的執(zhí) 行流程。若要定義指定一個(gè)布爾值,可以使用關(guān)鍵字true或false,這兩個(gè)關(guān)鍵字是 不區(qū)分大小寫(xiě)的,因此也可以使用True或Fa

19、lse。例如: 2.2.5 特殊類(lèi)型 1. 資源 資源是一種特殊變量,保存了對(duì)外部資源的一個(gè)引用。資源是通過(guò)專(zhuān)門(mén)的函數(shù) 來(lái)建立和使用的。由于資源類(lèi)型變量保存為打開(kāi)文件、數(shù)據(jù)庫(kù)連接、圖形畫(huà)布區(qū)域 等的特殊句柄,因此無(wú)法將其他類(lèi)型的值轉(zhuǎn)換為資源。 2. NULL 特殊的NULL值表示一個(gè)變量沒(méi)有值。NULL類(lèi)型只有一個(gè)值,就是大小寫(xiě)敏感 的關(guān)鍵字NULL。 例如: ,28180,2.2 數(shù)據(jù)類(lèi)型,第2章目錄,2.2.6 數(shù)據(jù)類(lèi)型轉(zhuǎn)換 1. 強(qiáng)制類(lèi)型轉(zhuǎn)換 ( type ) value 2. 整型轉(zhuǎn)換 3. 字符串轉(zhuǎn)換 4. 布爾轉(zhuǎn)換 5. 測(cè)試數(shù)據(jù)類(lèi)型 使用gettype()函數(shù)來(lái)測(cè)試一個(gè)值的數(shù)據(jù)類(lèi)

20、型: string gettype ( mixed var ),29180,2.3 變量與常量,第2章目錄,2.3.1 定義變量 在PHP語(yǔ)言中規(guī)定,變量用一個(gè)美元符號(hào)($)后面跟變量名來(lái)表示, 而且變量名是區(qū)分大小寫(xiě)的。變量名與其他標(biāo)識(shí)符一樣都遵循相同的命名 規(guī)則:一個(gè)有效的變量名由字母或下劃線開(kāi)頭,后面可以跟上任意數(shù)量的 字母、數(shù)字或下劃線。命名變量通常與對(duì)變量賦值一起進(jìn)行。 檢查變量或?qū)ο笫欠駥儆谀撤N數(shù)據(jù)類(lèi)型。 is_int()檢查變量是否為整型;is_float()檢查變量是否為浮點(diǎn)型;is_numeric()檢查變量是否為數(shù)值型;is_string()檢查變量是否為字符串;is_bo

21、ol()檢查變量是否為布爾型;is_array() 檢查是否為數(shù)組;is_object()檢查變量是否為對(duì)象。 使用gettype()函數(shù)測(cè)試一個(gè)變量的數(shù)據(jù)類(lèi)型。 使用var_dump()函數(shù)顯示變量的相關(guān)信息: void var_dump ( mixed expression , mixed expression , . ) 使用print_r()函數(shù)顯示關(guān)于變量的易于理解的信息: bool print_r ( mixed expression , bool return ),30180,2.3 變量與常量,第2章目錄,2.2.2 檢查變量是否設(shè)置 empty()函數(shù)檢查一個(gè)變量是否為空:

22、bool empty ( mixed var ) 若參數(shù)var是非空或非零的值,則empty()返回false??兆址?(“”)、0、“0”、NULL、false、array()、var $var; 以及沒(méi)有任何屬 性的對(duì)象都將被認(rèn)為是空的,若參數(shù)var為空,則empty()返回true。 isset()函數(shù)檢測(cè)變量是否設(shè)置: bool isset ( mixed var , mixed var , . ) 若參數(shù)var存在則返回true,否則返回false。isset()函數(shù)只能用于 變量,因?yàn)閭鬟f任何其他參數(shù)都將造成解析錯(cuò)誤。 若使用isset()測(cè)試一個(gè)被設(shè)置成NULL的變量,將返回f

23、alse。同 時(shí)要注意,一個(gè)NULL字節(jié)(0)并不等同于PHP的NULL常數(shù)。,31180,2.3 變量與常量,第2章目錄,2.3.3 可變變量與變量的引用 1. 可變變量 若一個(gè)變量獲取一個(gè)普通變量的值作為變量名,則該變量就稱(chēng) 為可變變量。在某些情況下,使用可變變量是很方便的,由此可以 動(dòng)態(tài)地設(shè)置和使用一個(gè)變量的變量名。例如: $a = hello ; $a = world ; echo $a $hello ; 2. 變量的引用 在PHP中,通過(guò)的引用可以用兩個(gè)變量來(lái)指向同一個(gè)內(nèi)容。若 要引用一個(gè)變量,可在該變量名前面加一個(gè),32180,2.3 變量與常量,第2章目錄,2.3.4 使用常量

24、1. 自定義常量 在PHP語(yǔ)言中,可以用define()函數(shù)來(lái)定義常量。語(yǔ)法如下: bool define ( string name, mixed value , bool case_insensitive ) 其中name指定常量的名稱(chēng),常量名與其他任何PHP標(biāo)識(shí)符遵循同樣的 命名規(guī)則,合法的常量名以字母或下劃線開(kāi)始,后面跟著任何字母、數(shù)字 或下劃線;value指定常量的值;參數(shù)bool case_insensitive指定常量名稱(chēng)是 否區(qū)分大小寫(xiě),默認(rèn)值為true,即區(qū)分大小寫(xiě)。 2. 預(yù)定義常量 _LINE_返回文件中的當(dāng)前行號(hào)。 _FILE_返回文件的完整路徑和文件名。 _FUNCT

25、ION_返回函數(shù)名稱(chēng)。 _CLASS_返回類(lèi)的名稱(chēng)。 _METHOD_返回該方法被定義時(shí)的名字(區(qū)分大小寫(xiě))。 PHP_VERSION返回PHP的版本號(hào)。 PHP_OS返回執(zhí)行PHP解析器的操作系統(tǒng)名稱(chēng)。,33180,2.4 運(yùn)算符與表達(dá)式,第2章目錄,2.4.1 算術(shù)運(yùn)算符 算術(shù)運(yùn)算符包括加號(hào)()、減號(hào)()、乘號(hào)(*)、除號(hào)(/)和取 模運(yùn)算符(%),分別用于執(zhí)行加、減、乘、除和求余數(shù)運(yùn)算。其中“”除 了作為減號(hào)外,也可以作為一元運(yùn)算符(負(fù)號(hào))使用,即對(duì)一個(gè)數(shù)取相反 數(shù);除號(hào)(“/”)總是返回浮點(diǎn)數(shù)。當(dāng)被除數(shù)$a為負(fù)值時(shí),取模$a % $b的 結(jié)果也是負(fù)值。 2.4.2 賦值運(yùn)算符 賦值運(yùn)算

26、符“=”的作用是把右邊表達(dá)式的值賦給左邊的運(yùn)算數(shù)。賦值運(yùn) 算表達(dá)式的值就是所賦的值。也就是說(shuō),“$a = 3”的值是3。這樣,一個(gè)賦 值運(yùn)算表達(dá)式也可用在其他表達(dá)式中,例如:$a = ($b = 3) + 6; 常用復(fù)合賦值運(yùn)算符 +=$op1 += $op2 $op1 = $op1 + $op2 =$op1 = $op2 $op1 = $op1 $op2 *=$op1 *= $op2 $op1 = $op1 * $op2 /=$op1 /= $op2 $op1 = $op1 / $op2 %=$op1 %= $op2 $op1 = $op1 % $op2 .=$op1 .= $op2 $op

27、1 = $op1 . $op2,34180,2.4 運(yùn)算符與表達(dá)式,第2章目錄,2.4.3 遞增/遞減運(yùn)算符 +(遞增) +$op(前加)首先在$op的值上加1,然后返回$op $op+(后加)首先返回$op,然后在$op的值上加1 (遞減) $op(前減)首先在$op的值上減1,然后返回$op $op(后減)首先返回$op,然后將$op的值減1 遞增/遞減運(yùn)算符對(duì)布爾值沒(méi)有影響。遞減NULL值也沒(méi)有效果, 遞增NULL的結(jié)果是1。,35180,2.4 運(yùn)算符與表達(dá)式,第2章目錄,2.4.4 字符串運(yùn)算符 連接運(yùn)算符(“.”),它返回兩個(gè)操作數(shù)連接后的字符串; 連接賦值運(yùn)算符(“.=”),它將

28、右邊操作數(shù)附加到左邊的操作數(shù)之后。 2.4.5 位運(yùn)算符 位運(yùn)算符允許對(duì)整型數(shù)中指定的位進(jìn)行置位,即對(duì)二進(jìn)制位從低位到 高位對(duì)齊后進(jìn)行運(yùn)算。執(zhí)行位運(yùn)算時(shí)會(huì)將操作數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù),然后 按位進(jìn)行相應(yīng)的運(yùn)算,運(yùn)算的結(jié)果以十進(jìn)制整數(shù)表示。如果兩個(gè)運(yùn)算數(shù)都 是字符串,則位運(yùn)算符將對(duì)字符的ASCII值進(jìn)行操作。 ,38180,2.4 運(yùn)算符與表達(dá)式,第2章目錄,2.4.8 邏輯運(yùn)算符 邏輯運(yùn)算符用于連接布爾表達(dá)式并構(gòu)成邏輯表達(dá)式,邏輯天的 值為布爾值true或false。在PHP語(yǔ)言中,邏輯運(yùn)算符包括邏輯與、 邏輯或、邏輯異或和邏輯非。 and(邏輯與)$a and $b 若$a和$b均為true,則

29、為true or(邏輯或)$a or $b若$a或$b任一為true,則為true xor(邏輯異或)$a xor $b 若$a或$b任一為true但不同時(shí)為true,則為true !(邏輯非)! $a 若$a為true,則為false )將構(gòu)成一個(gè)語(yǔ)句。最基本的表達(dá) 式形式是常量和變量,稍微復(fù)雜的表達(dá)式是函數(shù)。在 PHP中,表達(dá)式可以說(shuō)是無(wú)處不在的。除了常見(jiàn)的算術(shù) 表達(dá)式外,還有各種各樣的表達(dá)式。 一個(gè)常用的表達(dá)式類(lèi)型是比較表達(dá)式,這些表達(dá)式的 值為false或true。PHP支持各種比較運(yùn)算符,通過(guò)這些 運(yùn)算符構(gòu)成的比較表達(dá)式經(jīng)常用在條件判斷語(yǔ)句中。通 過(guò)邏輯運(yùn)算符連接比較表達(dá)式可以構(gòu)成邏

30、輯表達(dá)式,用 來(lái)表示更為復(fù)雜的條件。,40180,2.4 運(yùn)算符與表達(dá)式,第2章目錄,2.4.10 運(yùn)算符優(yōu)先級(jí),41180,2.5 流程控制語(yǔ)句,第2章目錄,2.5.1 選擇語(yǔ)句 1. if語(yǔ)句 if ( expr ) statements if ( expr ) statements else elsestatements if ( expr1 ) statements elseif ( expr2 ) elseifstatements else elsestatements,42180,2.5 流程控制語(yǔ)句,第2章目錄,2.5.1 選擇語(yǔ)句 2. switch語(yǔ)句 switch ( ex

31、pr ) case expr1: statements1 ; break ; case expr2: statements2 ; break ; . . . default: defaultstatements ; break ; ,43180,2.5 流程控制語(yǔ)句,第2章目錄,2.5.2 循環(huán)語(yǔ)句 1. while語(yǔ)句 while語(yǔ)句根據(jù)指定的條件將一組語(yǔ)句執(zhí)行零遍或若干遍: while ( expr ) statements 2. do-while語(yǔ)句 do-while語(yǔ)句根據(jù)指定的條件將一組語(yǔ)句執(zhí)行一遍或若干遍: do statements while ( expr ); 3. for語(yǔ)

32、句 for語(yǔ)句的語(yǔ)法如下: for ( expr1; expr2; expr3 ) statements,44180,2.5 流程控制語(yǔ)句,第2章目錄,2.5.3 跳轉(zhuǎn)語(yǔ)句 1. break語(yǔ)句 break語(yǔ)句結(jié)束當(dāng)前for、foreach、while、do-while或 switch語(yǔ)句的執(zhí)行,在該語(yǔ)句可以添加一個(gè)可選的數(shù)字 參數(shù),以決定跳出幾重循環(huán)。 2. continue語(yǔ)句 continue語(yǔ)句用在各種循環(huán)結(jié)構(gòu)中,用來(lái)跳過(guò)本次循 環(huán)中剩余的代碼并在條件求值為真時(shí)開(kāi)始執(zhí)行下一次循 環(huán)。在PHP中,continue也可以用在switch語(yǔ)句中。在 continue語(yǔ)句中,可以使用一個(gè)可選的

33、數(shù)字參數(shù),以決 定跳過(guò)幾重循環(huán)到循環(huán)結(jié)尾。,45180,2.5 流程控制語(yǔ)句,第2章目錄,2.5.4 包含文件語(yǔ)句 1. include語(yǔ)句 include filepath ; include ( filepath ) ; 2. include_once語(yǔ)句 include_once語(yǔ)句功能與include語(yǔ)句類(lèi)似,惟一的區(qū)別在于:如果該文件中的代 碼已經(jīng)被包含了,則不會(huì)再次包含。如同此語(yǔ)句名稱(chēng)暗示的那樣,只會(huì)包含一次。 require_once()的返回值與include()相同。如果文件已被包含,則返回true。 3. require語(yǔ)句 require filename require

34、 ( filename ) require語(yǔ)句與include語(yǔ)句功能類(lèi)似,惟一區(qū)別在于:如果找不到文件,則 include語(yǔ)句產(chǎn)生一個(gè)警告,而require語(yǔ)句則導(dǎo)致一個(gè)致命錯(cuò)誤。如果想在丟失文件 時(shí)停止處理頁(yè)面,則應(yīng)該使用require語(yǔ)句。 4. require_once語(yǔ)句 require_once語(yǔ)句用于在腳本執(zhí)行期間包含并運(yùn)行指定文件,其功能與require語(yǔ) 句類(lèi)似,所不同的是,如果該文件中的代碼已經(jīng)被包含了,則不會(huì)再次包含。,46180,第3章 數(shù)組與函數(shù),3.1 數(shù)組,3.2 函數(shù),3.3 面向?qū)ο缶幊坛醪?47180,3.1 數(shù)組,第3章目錄,數(shù)組的概念: 數(shù)組是一種復(fù)合數(shù)

35、據(jù)類(lèi)型,可用于保存一組類(lèi)型相同或不相同的數(shù)據(jù), 并把一組值映射為鍵。鍵也稱(chēng)為數(shù)組的索引,它可以是整型數(shù)或字符串, 相應(yīng)的數(shù)組分別稱(chēng)為枚舉數(shù)組或關(guān)聯(lián)數(shù)組。鍵可以有一個(gè)或多個(gè),相應(yīng)的 數(shù)組分別稱(chēng)為一組數(shù)組或多維數(shù)組。 3.1.1 創(chuàng)建數(shù)組 1. 用array()創(chuàng)建數(shù)組 $array_name = array( key = value , . . . ) ; 其中參數(shù)key表示鍵名,可以是整型數(shù)或字符串;value表示與鍵對(duì)應(yīng)的 值,可以是任何類(lèi)型的值(包括數(shù)組)。array()語(yǔ)言結(jié)構(gòu)返回根據(jù)參數(shù)建 立的數(shù)組。 2. 用方括號(hào)語(yǔ)法新建或修改數(shù)組 $arr_namekey = value ; 也可

36、以省略鍵名: $arr_name = value ; 其中key可以是整型數(shù)或字符串;value可以是任何值。,48180,3.1 數(shù)組,第3章目錄,3.1.2 遍歷數(shù)組 語(yǔ)法1 foreach (array_expr as $value) statements 語(yǔ)法2 foreach (array_expr as $key = $value) statements 第一種語(yǔ)法格式遍歷給定的array_expr數(shù)組。在每次循環(huán)中,當(dāng) 前元素的值被賦給$value,并且數(shù)組內(nèi)部的指針向前移一步,因此 在下一次循環(huán)中將會(huì)得到下一元素。第二種語(yǔ)法格式與第一種語(yǔ)法 格式作用相同,但當(dāng)前元素的鍵名會(huì)在每

37、次循環(huán)中賦給變量$key。,49180,3.1 數(shù)組,第3章目錄,3.1.3 預(yù)定義數(shù)組,50180,3.1 數(shù)組,第3章目錄,3.1.3 預(yù)定義數(shù)組 常用的$_SERVER數(shù)組元素,51180,3.1 數(shù)組,第3章目錄,3.1.4 數(shù)組函數(shù) bool array_key_exists ( mixed key, array search ):檢查給定的鍵名或索引是否存在于數(shù)組中。key表示鍵名或索引,search表示待搜索的數(shù)組。若給定的key存在于數(shù)組中,則返回true。 mixed array_pop ( array 其中function_name是要?jiǎng)?chuàng)建函數(shù)的名稱(chēng)。命名函數(shù)時(shí),應(yīng)遵循與變

38、量命名相同 的規(guī)則,但函數(shù)名不能以美元符號(hào)($)開(kāi)頭。函數(shù)名不區(qū)分大小寫(xiě)。$arg1$argN 是函數(shù)的參數(shù),通過(guò)這些參數(shù)可以向函數(shù)傳遞信息。一個(gè)函數(shù)可以有多個(gè)參數(shù),它 們之間用逗號(hào)分隔。函數(shù)的參數(shù)是可選的。參數(shù)可以是各種數(shù)據(jù)類(lèi)型,例如整型、 浮點(diǎn)型、字符串以及數(shù)組等。 statements表示在函數(shù)中執(zhí)行的一組語(yǔ)句。return語(yǔ)句用于立即結(jié)束此函數(shù)的執(zhí) 行并將它的參數(shù)作為函數(shù)的值返回,也用于終止腳本文件的執(zhí)行。return()是語(yǔ)言結(jié) 構(gòu)而不是函數(shù),僅在參數(shù)包含表達(dá)式時(shí)才需要用括號(hào)將其括起來(lái)。,54180,3.2 函數(shù),第3章目錄,3.2.2 函數(shù)的參數(shù) 1. 通過(guò)引用傳遞參數(shù) 在默認(rèn)情況

39、下,函數(shù)參數(shù)通過(guò)值傳遞,這意味著即使在函數(shù)內(nèi)部改變參數(shù)的值, 并不會(huì)改變函數(shù)外部的值。如果希望允許函數(shù)修改它的參數(shù)值,則必須通過(guò)引用傳 遞參數(shù)。若要函數(shù)的一個(gè)參數(shù)通過(guò)引用傳遞,則可以在函數(shù)定義中該參數(shù)的前面預(yù) 先加上引用符號(hào)“ 其中class表示類(lèi)名。該賦值語(yǔ)句創(chuàng)建類(lèi)的一個(gè)對(duì)象實(shí)例,并將該對(duì)象的一個(gè)引 用賦給變量$object。 創(chuàng)建對(duì)象后,即可在程序中引用對(duì)象的屬性,語(yǔ)法如下: $object-property 也可以在程序中調(diào)用對(duì)象的方法,語(yǔ)法如下: $object-method(),61180,3.3 面向?qū)ο缶幊坛醪?第2章目錄,3.3.2 構(gòu)造方法 構(gòu)造方法是類(lèi)中的一個(gè)特殊函數(shù),當(dāng)使

40、用new操作符創(chuàng)建一個(gè)類(lèi) 的實(shí)例時(shí),構(gòu)造方法將會(huì)自動(dòng)調(diào)用。具有構(gòu)造方法的類(lèi)會(huì)在每次創(chuàng) 建對(duì)象時(shí)先調(diào)用此方法,所以非常適合在使用對(duì)象之前做一些初始 化工作。 在PHP 4和PHP 5中,對(duì)構(gòu)造方法的處理有所不同。在PHP 4中, 如果一個(gè)函數(shù)與類(lèi)同名時(shí),則這個(gè)函數(shù)將成為構(gòu)造方法。如果一個(gè) 類(lèi)沒(méi)有構(gòu)造方法,則調(diào)用基類(lèi)的構(gòu)造方法,如果有的話。在PHP 5 中,可以在一個(gè)類(lèi)中定義一個(gè)方法作為構(gòu)造方法,而且構(gòu)造方法的 名稱(chēng)統(tǒng)一為_(kāi)construct。構(gòu)造方法沒(méi)有返回值。 為了實(shí)現(xiàn)向后兼容性,如果PHP 5在類(lèi)中找不到_construct()函 數(shù),它就會(huì)嘗試尋找舊式的構(gòu)造方法,也就是和類(lèi)同名的函數(shù)。因

41、此將會(huì)產(chǎn)生一個(gè)兼容性問(wèn)題:在類(lèi)中已有一個(gè)名為_(kāi)construct()的 方法,但它卻又不是構(gòu)造方法。,62180,第4章 字符串與正則表達(dá)式,4.1 字符串處理,4.2 正則表達(dá)式應(yīng)用,63180,4.1 字符串處理,4.1.1 字符串的輸出 print()函數(shù)輸出一個(gè)字符串: int print ( string arg ) sprintf()函數(shù)返回一個(gè)格式化的字符串: string sprintf ( string format , mixed args , mixed . ) 4.1.2 大小寫(xiě)轉(zhuǎn)換 strtolower()函數(shù)把一個(gè)字符串中的所有字母都轉(zhuǎn)換為小寫(xiě)形式: string

42、strtolower ( string str ) strtoupper()函數(shù)把一個(gè)字符串中的所有字母都轉(zhuǎn)換為大寫(xiě)形式: string strtoupper ( string str ) ucfirst()函數(shù)把一個(gè)字符串中的首字母轉(zhuǎn)換為大寫(xiě)形式: string ucfirst ( string str ) ucword()函數(shù)把一個(gè)字符串中所有單詞的首字母都轉(zhuǎn)換為大寫(xiě)形式: string ucwords ( string str ),第4章目錄,64180,4.1 字符串處理,4.1.3 從字符串中刪除空格 trim()函數(shù)去除字符串開(kāi)始位置和結(jié)束位置的空格或其他字符: string tr

43、im ( string str , string charlist ) ltrim()函數(shù)去除字符串左邊的空格或其他字符并返回處理后的字符串: string ltrim ( string str , string charlist ) rtrim()函數(shù)去除字符串右邊的空格或其他字符并返回處理后的字符串: string rtrim ( string str , string charlist ),第4章目錄,65180,4.1 字符串處理,4.1.4 HTML文本格式化 nl2br()函數(shù)把字符串中的所有換行符(“n”)轉(zhuǎn)換為HTML換行標(biāo)記并返回經(jīng)過(guò)處理的字符串: string nl2br

44、( string str ) htmlspecialchars()函數(shù)把字符串中的一些特殊字符替換為HTML文本實(shí)體并返回經(jīng)過(guò)處理的字符串: string htmlspecialchars ( string str , int quote_style , string charset ) htmlentities()函數(shù)把字符串中的一些HTML標(biāo)簽轉(zhuǎn)換為HTML實(shí)體并返回經(jīng)過(guò)處理的字符串: string htmlentities ( string str , int quote_style , string charset ) strip_tags()函數(shù)從字符串中去除所有PHP和HTML標(biāo)記

45、并返回經(jīng)過(guò)處理的字符串: string strip_tags ( string str , string allowable_tags ),第4章目錄,66180,4.1 字符串處理,4.1.5 添加或去除反斜線 addslashes()函數(shù)使用反斜線引用字符串: string addslashes ( string str ) stripslashes()函數(shù)去除字符串中的反斜線: string stripslashes ( string str ) 4.1.6 字符串的連接與分割 implode()函數(shù)將數(shù)組元素連接成一個(gè)字符串并返回該字符串: string implode ( strin

46、g glue, array pieces ) explode()函數(shù)使用一個(gè)字符串分割另一個(gè)字符串: array explode ( string separator, string str , int limit ) strtok()函數(shù)把一個(gè)字符串按照另一個(gè)字符串的值分割成若干個(gè)字符串: string strtok ( string str, string token ),第4章目錄,67180,4.1 字符串處理,4.1.7 查找字符串 strpos() 函數(shù)從一個(gè)字符串中查找另一個(gè)字符串首次出現(xiàn)的位置: int strpos ( string haystack, mixed needl

47、e , int offset ) stripos()函數(shù)與strpos()功能基本相同,只是不區(qū)分大小寫(xiě): int stripos ( string haystack, mixed needle , int offset ) strrpos() 函數(shù)在一個(gè)字符串中查找另一個(gè)字符串的最后一次出現(xiàn): int strrpos ( string haystack, mixed needle , int offset ) 4.1.8 替換字符串 str_replace()函數(shù)在一個(gè)字符串中查找一個(gè)子串的所有出現(xiàn)并使用新字符串替換該子串: mixed str_replace ( mixed search,

48、 mixed replace, mixed subject , int / 重定向?yàn)g覽器 exit;/ 確保重定向后下面的代碼不會(huì)被執(zhí)行 5.4.2 使用客戶(hù)端腳本 在JavaScript客戶(hù)端腳本代碼中,通過(guò)把document對(duì)象的 location屬性或location對(duì)象的href屬性設(shè)置為要轉(zhuǎn)到的目標(biāo)頁(yè)面的 URL,都可以實(shí)現(xiàn)不同頁(yè)面之間的跳轉(zhuǎn)。把PHP服務(wù)器端腳本與 JavaScript客戶(hù)端腳本結(jié)合起來(lái),可以使用PHP變量動(dòng)態(tài)地設(shè)置目 標(biāo)頁(yè)面的URL,從而可以根據(jù)條件跳轉(zhuǎn)到不同的頁(yè)面。若要向目 標(biāo)頁(yè)面?zhèn)鬟f參數(shù),則可以把名稱(chēng)-對(duì)附加在URL后面。若需要定時(shí) 跳轉(zhuǎn)功能,則可以利用win

49、dow對(duì)象的setTimeout方法來(lái)實(shí)現(xiàn)。,第5章目錄,87180,5.4 頁(yè)面跳轉(zhuǎn),5.4.3 使用HTML標(biāo)記 在文件頭部分添加一個(gè)meta標(biāo)簽可以實(shí)現(xiàn)當(dāng)前頁(yè)面的刷新或 跳轉(zhuǎn)到另一頁(yè)面: 其中參數(shù)n指定當(dāng)前頁(yè)面停留的秒數(shù),參數(shù)url指定要跳轉(zhuǎn)的頁(yè) 面,若省略u(píng)rl參數(shù),則設(shè)置每經(jīng)過(guò)指定的時(shí)間間隔自動(dòng)刷新當(dāng)前 頁(yè)面。在PHP代碼中,可以利用變量設(shè)置url參數(shù)的值,從而可以根 據(jù)不同的條件跳轉(zhuǎn)到不同的頁(yè)面。,第5章目錄,88180,5.5 會(huì)話管理,5.5.1 會(huì)話變量概述 會(huì)話變量存儲(chǔ)著用戶(hù)的會(huì)話生命周期的信息。當(dāng)用戶(hù)第一次打開(kāi)應(yīng)用程序中的某一頁(yè)時(shí),用戶(hù)會(huì)話就此開(kāi)始。當(dāng)用戶(hù)一段時(shí)間內(nèi)不再打

50、開(kāi)該應(yīng)用程序中的其他頁(yè)時(shí),或者用戶(hù)明確終止該會(huì)話時(shí)(通常是通過(guò)單擊“注銷(xiāo)”鏈接),會(huì)話即告結(jié)束。在會(huì)話存在期間,會(huì)話特定于單個(gè)用戶(hù),每個(gè)用戶(hù)都有單獨(dú)的會(huì)話。 會(huì)話變量用于存儲(chǔ)Web應(yīng)用程序中每頁(yè)都能訪問(wèn)的信息。信息可以是多種多樣的,例如用戶(hù)名、首選字體大小,或者是指示用戶(hù)是否成功登錄的標(biāo)記及訪問(wèn)權(quán)限等。會(huì)話變量的另一個(gè)常見(jiàn)用途是保存連續(xù)分?jǐn)?shù)。例如,在網(wǎng)上測(cè)驗(yàn)中到目前為止用戶(hù)答對(duì)的題數(shù),或者到目前為止用戶(hù)從電子商務(wù)網(wǎng)站目錄中選擇的商品。 會(huì)話變量還可以提供一種超時(shí)形式的安全機(jī)制,這種機(jī)制在用戶(hù)賬戶(hù)長(zhǎng)時(shí)間不活動(dòng)的情況下,將終止該用戶(hù)的會(huì)話。如果用戶(hù)忘記從Web站點(diǎn)注銷(xiāo),這種機(jī)制還會(huì)釋放服務(wù)器內(nèi)存和

51、處理資源。 會(huì)話變量只有在用戶(hù)的瀏覽器配置成接受Cookie后才起作用。當(dāng)首次初始化會(huì)話時(shí),服務(wù)器創(chuàng)建一個(gè)唯一標(biāo)識(shí)該用戶(hù)的會(huì)話ID號(hào),然后將包含該ID號(hào)的Cookie發(fā)送到用戶(hù)的瀏覽器。,第5章目錄,89180,5.5 會(huì)話管理,5.5.2 創(chuàng)建會(huì)話變量 1. 啟動(dòng)會(huì)話 bool session_start ( void ) 2. 用會(huì)話變量存儲(chǔ)信息 例如: $_SESSIONusername = $_POSTtxtUserName ; 3. 檢查會(huì)話變量是否存在 bool session_is_registered ( string name ) 4. 從會(huì)話變量中檢索數(shù)據(jù) 例如: $use

52、rname = $_SESSIONusername ; 5. 在Dreamweaver中定義會(huì)話變量 在PHP源代碼中創(chuàng)建一個(gè)會(huì)話變量并為其指定值。 在【綁定】面板上單擊加號(hào)按鈕 并選擇【階段變量】命令。 在【階段變量】對(duì)話框中,輸入會(huì)話變量的名稱(chēng)。,第5章目錄,90180,5.5 會(huì)話管理,5.5.3 注銷(xiāo)會(huì)話變量 使用session_unregister()函數(shù)可以從當(dāng)前會(huì)話中注銷(xiāo)一個(gè)會(huì)話變量: bool session_unregister ( string name ) 使用session_unset()函數(shù)可以從當(dāng)前會(huì)話中注銷(xiāo)所有會(huì)話變量: void session_unset (

53、void ) 使用session_destroy()函數(shù)可以清除當(dāng)前會(huì)話的會(huì)話ID: bool session_destroy ( void ),第5章目錄,91180,5.6 Cookie應(yīng)用,5.6.1 Cookie概述 Cookie是一小段文本信息,隨著用戶(hù)請(qǐng)求和頁(yè)面一起在Web服務(wù)器與瀏覽器之間傳遞。Cookie包含每次用戶(hù)訪問(wèn)網(wǎng)站時(shí)Web應(yīng)用程序都可以讀取的信息。如果在用戶(hù)請(qǐng)求網(wǎng)站中的頁(yè)面時(shí)應(yīng)用程序發(fā)送給該用戶(hù)的不僅僅是一個(gè)頁(yè)面,還有一個(gè)包含日期和時(shí)間的Cookie,用戶(hù)的瀏覽器在獲得頁(yè)面的同時(shí)還獲得了該Cookie,并將它存儲(chǔ)在用戶(hù)硬盤(pán)上的某個(gè)文件夾中。如果該用戶(hù)以后再次請(qǐng)求站點(diǎn)中

54、的頁(yè)面,當(dāng)該用戶(hù)輸入U(xiǎn)RL時(shí),瀏覽器便會(huì)在本地硬盤(pán)上查找與該URL關(guān)聯(lián)的Cookie。如果該Cookie存在,瀏覽器便將該Cookie與頁(yè)面請(qǐng)求一起發(fā)送到網(wǎng)站。,第5章目錄,92180,5.6 Cookie應(yīng)用,5.6.2 在PHP中應(yīng)用Cookie 1. 發(fā)送Cookie信息 使用setcookie()函數(shù)可以向客戶(hù)端發(fā)送一個(gè)Cookie信息: bool setcookie ( string name , string value , int expire , string path , string domain , bool secure ) 2. 讀取Cookie信息 當(dāng)設(shè)置Cooki

55、e后,便可以在其他頁(yè)面通過(guò)$_COOKIE或 $HTTP_COOKIE_VARS數(shù)組取得其值,其中$_COOKIE形式適用 于PHP 4.1.0或更高版本。而$HTTP_COOKIE_VARS則從PHP 3起 就可以使用。Cookie的值也會(huì)被保存到$_REQUEST數(shù)組中。 3. 在Dreamweaver中定義Cookie變量 在PHP源代碼中,設(shè)置并發(fā)送Cookie信息。 在【綁定】面板上單擊加號(hào)按鈕 并選擇【Cookie變量】。 在【Cookie變量】對(duì)話框中輸入Cookie變量名稱(chēng)。,第5章目錄,93180,第6章 PHP文件編程,6.1 文件操作,6.2 目錄操作,6.3 上傳文件,

56、94180,6.1 文件操作,6.1.1 檢查文件是否存在 函數(shù)file_exists()檢查一個(gè)文件或目錄是否存在: bool file_exists ( string filename ) 6.1.2 打開(kāi)和關(guān)閉文件 1. 打開(kāi)文件 用函數(shù)fopen()打開(kāi)一個(gè)文件或URL: resource fopen ( string filename, string mode , bool use_include_path , resource zcontext ) 2. 關(guān)閉文件 使用fclose()函數(shù)關(guān)閉文件: bool fclose ( resource handle ) 6.1.3 寫(xiě)入文

57、件 用fwrite()函數(shù)向文件寫(xiě)入數(shù)據(jù): int fwrite ( resource handle, string str , int length ),第6章目錄,95180,6.1 文件操作,6.1.4 讀取文件 1. 讀取單個(gè)字符 string fgetc ( resource handle ) 2. 逐行讀取數(shù)據(jù) fgets()函數(shù)從文件中讀取一行: string fgets ( int handle , int length ) fgetss()函數(shù)從文件中讀取一行并過(guò)濾掉HTML標(biāo)記: string fgetss ( resource handle , int length ,

58、string allowable_tags ) fgetcsv()函數(shù)從文件指針中讀入一行并解析CSV字段: array fgetcsv ( int handle , int length , string delimiter , string enclosure ),第6章目錄,96180,6.1 文件操作,6.1.4 讀取文件 3. 讀取指定長(zhǎng)度數(shù)據(jù) 用fread()函數(shù)可以從文件讀取指定長(zhǎng)度的數(shù)據(jù): string fread ( int handle, int length ) 4. 讀取整個(gè)文件 readfile()函數(shù)讀取并輸出一個(gè)文件的內(nèi)容: int readfile ( stri

59、ng filename , bool use_include_path , resource context ) fpassthru()函數(shù)輸出文件指針處所有的剩余數(shù)據(jù): int fpassthru ( resource handle ) file()函數(shù)將整個(gè)文件讀入一個(gè)數(shù)組中: array file ( string filename , int use_include_path , resource context ) file_get_contents()函數(shù)將整個(gè)文件讀入一個(gè)字符串: string file_get_contents ( string filename , bool use_include_path , resource context , int offset , int maxlen ),第6章目錄,97180,6.1 文件操作,6.1.5 文件定位 fseek()函數(shù)在文件中定位文件指針: int fseek ( resource handle, int offset , int whence ) rewind()函數(shù)將文件指針設(shè)置到文件開(kāi)頭: bool rewind ( resource handle ) ftell()

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論