PHP+MySQL互動式網頁程式設計班 PHP進階語法 講師:林業峻 CSIE, NTU 6/ 19, 2010.

Slides:



Advertisements
Similar presentations
第六章 网页设计与制作基础.
Advertisements

兩性相處 主講人:孫晉芬老師.
白玉苦瓜 余光中.
第5章 HTML 標籤介紹.
第8讲 HTML与PHP基础 静态网页 vs. 动态网页.
年度校樹選拔秀 主辦單位:楊梅國小.
网页 设计与制作.
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
学习情境三:配置WEB服务器 服务器配置与管理.
第五单元课1-3 层叠样式表.
模块1 网页设计基础 实训1 体验HTML文档 1.1 网页基础知识 1.2 网站配色方案 1.3 网站设计常用软件
第3章 JavaScript语言基础.
《网页设计与制作》 教学课件 主讲人:湖南铁道职业技术学院 陈承欢
報告人:古博文 彰師大運動健康研究所副教授 人權教育基金會執行長 100年8月
第十三章 文件.
第六章 操作浏览器窗口.
第3章 超文本标记语言(HTML) 3.1 基本结构标记 3.2 文本格式标记 3.3 超链接标记<A></A>
Google 自訂搜尋 淡江大學資訊中心 專案發展組 朱家璁 2009/10/6.
PHP+MySQL互動式網頁程式設計班 範例實作-網路留言板 講師:林業峻 CSIE, NTU 6 /27, 2010.
PHP+MySQL互動式網頁程式設計班 範例實作-電子相簿 講師:林業峻 CSIE, NTU 7 / 4, 2010.
Hello World 體驗實作第一個JSP程式.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 9 章 常數.
留言版 1.先Create一個留言板的table
Introduction to PHP part3
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 13 章 陣列應用.
PHP +MySQL快速入門 Lesson 4.
计算概论 第二十一讲 文件操作 北京大学信息学院.
PHP 5 入門基礎 第一個PHP 程式 PHP 資料型態.
利用PHP將資料存入MySQL PHP 5 Tutorial 範例:
滑鼠移動與按鍵事件 JavaScript 滑鼠移動與按鍵事件.
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
Lesson 5 :基礎應用二(留言版) (2004/08/20).
進階 WWW 程式設計 -- PHP Regular Expression 靜宜大學資訊管理學系 蔡奇偉副教授 2004
無障礙網頁 公關室.
PHP+MySQL互動式網頁程式設計班 檔案上傳程式設計 講師:林業峻 CSIE, NTU 7 / 3, 2010.
HTML5简介 WEB前端三剑客之一.
JavaScript 靜宜大學 資管系 楊子青.
PHP 程式流程控制結構.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 17 章 物件.
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
Php class 組員: 賴羿陵 林昱廷 莊正暉 張雅晴
网 站 设 计 与 建 设 Website design and developments
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
PHP 變數、常數與運算子 變數 常數 運算子
研讨课4 文件操作.
PHP5與MySQL4 入門學習指南 凱文瑞克 著 第 16 章 檔案處理.
PHP+MySQL互動式網頁程式設計班 期末考 講師:林業峻 CSIE, NTU 7 / 11, 2010.
架站實做—AppServ
HTML 103 互動式網頁.
程式語言與邏輯 高慧君 台北市立南港高中 2006年12月22日.
Ch09 在網頁之間傳遞資訊 網頁程式設計.
PHP+MySQL互動式網頁程式設計班 課程資訊 講師:林業峻 CSIE, NTU 6/ 12, 2010.
JavaScript 语言2 学习网站: 第 4 章 JavaScript 语言2 学习网站:
HTTP 1.1 Method OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT
HTML 103 互動式網頁 助教:黃毓瑩.
XML備份MySQL資料庫 <html> <head>
利用PHP將資料存入MySQL PHP 5 Tutorial 範例:
Unity回傳統計資訊程式說明: 填寫回傳資訊網址(theUrl)。
B A C D ADD YOUR TEXT ADD YOUR TEXT ADD YOUR TEXT ADD YOUR TEXT
Ch07. 函式.
ADD YOUR TITLE HERE ADD YOUR NAME.
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
網頁設計實務- PHP 與資料庫整合.
結構、檔案處理(Structure, File)
故事創作與應用教學經驗分享 周梅雀 崑山科大幼兒保育系.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
中式烹调技艺 第五章.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 12 章 迴圈指令.
表单页面 表单是用户利用浏览器对Web站点网络数据库进行查询的一种界面,用户利用表单可以输入信息或选择选项等,然后将这些信息提交给服务器进行处理。通过表单,既可以将浏览器的信息发送到Internet服务器上,同时表单也可以使用户与站点的浏览者交互或从浏览者那里收集信息。它是网页的设计者和使用者相互交流的工具。表单对象包括文本域(单行、多行、密码)、列表、菜单、复选框、单选框、按钮等。
Presentation transcript:

PHP+MySQL互動式網頁程式設計班 PHP進階語法 講師:林業峻 CSIE, NTU 6/ 19, 2010

課程大綱 檔案 函式 物件

fopen(): 開檔 與 fclose(): 關檔 用於開啟檔案,檔案若為讀取模式,在使用前是 需先經過開啟動作的。 使用格式: 檔案變數 = fopen(“檔名”, “模式”); 檔案變數:記錄欲開啟的檔案之相關資料。 模式:檔案使用模式,指的是檔案被開啟之後的使用方式。 fclose(檔案變數); 模式 "r" 開啟一個文字檔(text),供程式讀取。如果磁碟內不包含這個檔案,則此檔案開啟失敗 "w" 開啟一個文字檔(text),供程式將資料寫入此檔案內。如果磁碟內不包含這個檔案,則系統會自行建立這個檔案。如果磁碟內包含這個檔案,則此檔案內容會被蓋過而消失。 "x" 開啟一個文字檔(text),供程式將資料寫入此檔案內。如果磁碟內不包含這個檔案,則系統會自行建立這個檔案。如果磁碟內包含這個檔案,則此檔案開啟失敗。 "a" 開啟一個文字檔(text),供程式將資料寫入此檔案的末端。如果此檔案不存在,則系統會自行建立此檔案。 

fprintf(): 寫檔 將資料以格式化方式寫入某檔案內。 使用格式: fprintf(檔案變數,“輸出格式”,變數1,變數1, …變數n); 格式中使用%s對應後面要寫到檔案的變數 <html> <head><title>PHP範例程式</title></head> <body> <? $n = 10; $str = "Hello"; $fp = fopen("file.txt", "w"); fprintf($fp, "%s %s", $n, $str); fclose($fp); ?> </body> </html>

fscanf(): 讀檔 從某個檔案讀取資料。 使用格式: fscanf(檔案變數,“輸入格式”, 變數1,變數1, …變數n); <html> <head><title>PHP範例程式</title></head> <body> <? $fp = fopen("file.txt", "r"); fscanf($fp, "%s %s", $n, $str); fclose($fp); echo "$n $str"; ?> </body> </html>

檔案應用: 網頁計數器 建立一個count.txt文字檔,裡面存一個整數0 寫一個php程式, 每次執行都會將count.txt中的數 字遞增1後, 輸出到網頁中 (counter.php) <html> <head><title>PHP範例程式</title></head> <body> <? $fp = fopen("count.txt", "r"); fscanf($fp, "%s", $n); fclose($fp); $n++; echo "目前人數: $n"; $fp = fopen("count.txt", "w"); fprintf($fp, "%s", $n); ?> </body> </html>

練習 設計一個訪客意見留言表單, 將留言另存成檔 (message.htm) 提示: 利用計數器原理,設計檔案名稱

課程大綱 檔案 函式 物件

函式 包函許多程式碼的一行程式 (用來代表某種功能) 當程式碼太多時,可以將部份程式碼抽離主程式,寫 成一段函式,有需要用到時再去呼叫它 語法: function 函式名稱(參數1,參數2, …,參數n) { 程式碼; return 回傳值; } PHP的自訂函式有幾個特性: 函式本身可以傳入多個或不傳入參數 函式只可以回傳一個值。 函式內的變數是獨立的,不會受外在變數的影響。

函式 範例: 將印出三次Hello!的函式 function hello() <html> <head> <title>PHP範例程式</title> <? function hello() { echo "Hello!<br>"; } ?> </head> <body> hello(); </body> </html>

練習 範例: 設計一個函式貼出a.jpg, 寬度為120, 點圖可顯 示全圖 (hyperImage.php) function hyperImage() <html> <head> <title>PHP範例程式</title> <? function hyperImage() { //請寫此函式內容 } ?> </head> <body> hyperImage(); </body> </html>

函式的參數與回傳值應用 範例: 設計一個計算兩個整數相加的函式 function add($x, $y) <html> <head> <title>PHP範例程式</title> <? function add($x, $y) { $sum = $x + $y; return $sum; } ?> </head> <body> $n = add(10, 20); echo "$n<br>"; $n = add(50, 30); </body> </html>

練習 範例: 設計一個函式貼出一張可設檔名與寬度的圖, 點 圖可顯示全圖 (hyperImage2.php) function hyperImage($name, $w) <html> <head> <title>PHP範例程式</title> <? function hyperImage($name, $w) { //請寫此函式內容 } ?> </head> <body> hyperImage("a.jpg", 120); hyperImage("a.jpg", 240); hyperImage("a.jpg", 480); </body> </html>

函式內的變數是獨立的 下列中函式裡的$n遞增, 不影響body中的$n, 因為函 式內的變數是獨立的 <html> <head> <title>PHP範例程式</title> <? function increment($n) { $n++; echo "函式中的n = $n<br>"; } ?> </head> <body> $n = 0; increment($n); echo "呼叫函式後的n = $n<br>"; </body> </html>

函式內的變數是獨立的 在參數變數前加&, 讓body傳入的$n與函式裡的$n相 同, 則函式裡改變$n值會影響body中的$n <html> <head> <title>PHP範例程式</title> <? function increment(&$n) { $n++; echo "函式中的n = $n<br>"; } ?> </head> <body> $n = 0; increment($n); echo "呼叫函式後的n = $n<br>"; </body> </html>

函式內的變數是獨立的 因為函式內的變數是獨立的, 因此在函式內宣告的變 數, body中無法使用 <html> <head> <title>PHP範例程式</title> <? function func() { $n = 10; } ?> </head> <body> func(); echo "呼叫函式後的n = $n<br>"; </body> </html>

函式內的變數是獨立的 如果要讓函式內宣告的變數可在body中使用, 要將變 數宣告為全域變數 語法: global $變數名稱; <html> <head> <title>PHP範例程式</title> <? function func() { global $n; $n = 10; } ?> </head> <body> func(); echo "呼叫函式後的n = $n<br>"; </body> </html>

函式參數為陣列之應用 從當傳入一個陣列到函式時, 通常需要將資料各數一 併傳入, 以便做重複控制 範例: 製作一個函式, 計算 陣列中n個數字的平均 function average($n, $data) <html> <head> <title>PHP範例程式</title> <? function average($n, $data) { $sum = 0; for($i=0; $i<$n; $i++) $sum+=$data[$i]; } return $sum/$n; ?> </head> <body> $data[0] = 46; $data[1] = 67; $data[2] = 98; $aver = average(3, $data); echo "$aver"; </body> </html>

善用foreach在函式中處理陣列資料 foreach: 對陣列中所有元素做處理 語法: foreach(陣列 as 變數) //將陣列某一元素存入變數中 { 程式碼; } 範例: 印出陣列$data中所有資料 <html> <head> <title>PHP範例程式</title> </head> <body> <? $data[0] = 46; $data[1] = 67; $data[2] = 98; $data["abc"] = "test"; foreach($data as $v) { echo "$v<br>"; } ?> </body> </html>

善用foreach在函式中處理陣列資料 範例: 製作一個函式, 計算陣列中所有數字的平均 function average($data) <html> <head> <title>PHP範例程式</title> <? function average($data) { $sum = 0; $n = 0; foreach($data as $v) $sum+=$v; $n++; } return $sum/$n; ?> </head> <body> $data[0] = 46; $data[1] = 67; $data[2] = 98; $aver = average($data); echo "$aver"; </body> </html>

練習 範例: 製作一個找出陣列中最大數字的函式 function findMax($data) <html> <head> <title>PHP範例程式</title> <? function findMax($data) { //請寫此函式內容 } ?> </head> <body> $data[0] = 46; $data[1] = 97; $data[2] = 90; $max = findMax($data); echo "$max"; //印出97 </body> </html>

利用函式產生HTML語法 範例: 設計一個函式連續貼出四張圖, 可設檔名與寬度 function showImage4($name, $w) <head> <title>PHP範例程式</title> <? function showImage4($name, $w) { for($i=0; $i<4; $i++) echo "<img src='$name' width='$w'>\n"; } ?> </head> <body> showImage4("a.jpg", 120); </body> </html>

練習 範例: 設計一個函式在一個4x4表格中連續貼出16張 圖, 可設檔名與寬度 (showImage4x4.php) function showImage4x4($name, $w) <html> <head> <title>PHP範例程式</title> <? function showImage4x4($name, $w) { //請寫此函式內容! } ?> </head> <body> showImage4x4("a.jpg", 120); </body> </html>

課程大綱 檔案 函式 物件

PHP物件導向 使用類別定義出物件的規格書,之後就可依這個 規格書製作出物件實例,並在製作過程中設定個 別物件的專屬特性資料。 使用自訂類別class建立物件 宣告類別語法: class 類別名稱 { 宣告要用到的變數; //var $變數名稱; 宣告要用到的函式; //函式中要用到前面宣告的變數要用 $this->變數名稱 }; 建立物件語法: $物件名稱 = new 類別名稱; 使用物件內的變數或函式語法: $物件名稱->函式或變數

宣告類別建立物件 範例: 將表單填入的個人資訊(姓名,電話,Email), 以物 件方式做接收與輸出 Person.htm <html> <head> <title>PHP範例程式</title> </head> <body> <form method="post" action="person.php"> Name: <input type="text" name="T1" size="20"><br> Phone: <input type="text" name="T2" size="20"><br> Email: <input type="text" name="T3" size="20"><br> <input type="submit" name="B1" value="ok"> </form> </body> </html>

宣告類別建立物件 Person.php <html> <head> <title>PHP範例程式</title> <? class Person { var $name; var $phone; var $email; function input() $this->name = $_POST['T1']; $this->phone = $_POST['T2']; $this->email = $_POST['T3']; } function output() echo "<table border='1'>\n"; echo "<tr><td>Name:</td><td>$this->name</td></tr>\n"; echo "<tr><td>Phone:</td><td>$this->phone</td></tr>\n"; echo "<tr><td>Email:</td><td>$this->email</td></tr>\n"; echo "</table>\n"; }; ?> </head> <body> $p = new Person; $p->input(); $p->output(); </body> </html> Person.php

宣告類別建立物件 Person.php 也可以這樣設計: <html> <head> <title>PHP範例程式</title> <? class Person { var $name; var $phone; var $email; function output() echo "<table border='1'>\n"; echo "<tr><td>Name:</td><td>$this->name</td></tr>\n"; echo "<tr><td>Phone:</td><td>$this->phone</td></tr>\n"; echo "<tr><td>Email:</td><td>$this->email</td></tr>\n"; echo "</table>\n"; } }; ?> </head> <body> $p = new Person; $p->name = $_POST['T1']; $p->phone = $_POST['T2']; $p->email = $_POST['T3']; $p->output(); </body> </html> Person.php 也可以這樣設計:

建構式: 建立物件自動執行的函式 類別中可宣告一個名稱與類別名稱一樣的函式, 稱建 構式 當建立物件時建構式會自動執行, 通常用來初始化類 別中的變數內容

建構式: 建立物件自動執行的函式 因此Person.php 還可以這樣設計: <html> <head> <title>PHP範例程式</title> <? class Person { var $name; var $phone; var $email; function Person() $this->name = $_POST['T1']; $this->phone = $_POST['T2']; $this->email = $_POST['T3']; } function output() echo "<table border='1'>\n"; echo "<tr><td>Name:</td><td>$this->name</td></tr>\n"; echo "<tr><td>Phone:</td><td>$this->phone</td></tr>\n"; echo "<tr><td>Email:</td><td>$this->email</td></tr>\n"; echo "</table>\n"; }; ?> </head> <body> $p = new Person; $p->output(); </body> </html> 因此Person.php 還可以這樣設計:

練習 自訂一個Image類別, 其中包含: 試著用Image建立一個物件使用裡面包含的貼圖 函式 變數: 函式 var name: 檔名 var width: 寬度 函式 Image(): 建構式, 將name設為a.jpg, width設為120 showImage(): 貼一張圖: showImage4(): 連續貼出四張圖 showImage4x4(): 4x4表格中連續貼出16張圖 試著用Image建立一個物件使用裡面包含的貼圖 函式