introduction to php programming
DESCRIPTION
สไลด์ประกอบการบรรยายในหัวข้อ "Introduction to PHP programming" สำหรับบุคคลทั่วไปของศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ ในหลักสูตร LAMP trainingTRANSCRIPT
1
Web-based Applicationsby
Open Source Tools
2
หัวขอการฝกอบรม• วันที่ 1:
PHP Fundamentals• วันที่ 2:
Linux System Administration• วันที่ 3:
PHP & MySQL• วันที่ 4:
Workshop
3
PHP Fundamental: กําหนดการสอน
9.00 น. – 10.30 น.• ความรูเบือ้งตนเกีย่วกับ PHP (Introduction to PHP)• ชนิดของขอมลูและตัวแปร (Data type and variable)• การปฏิบตัิการใน PHP (Program operator)
10.45 น. – 12.15 น.• การทํางานตามเงื่อนไข (Conditional statement)• การควบคุมการทํางาน (Flow control)
4
ความรูเบื้องตนเกี่ยวกับ PHP• ทําไมตองเขียนโปรแกรมบนเว็บ?• PHP คืออะไร?• ทําไมตอง PHP?• PHP จากอดีตถึงปจจุบัน• การประยุกตใช PHP บนอินเทอรเน็ต• การเตรียมตัวกอนเขียนโปรแกรม PHP• ขั้นตอนในการเขียนโปรแกรม PHP• โครงสรางของโปรแกรมภาษา PHP• เริ่มตนเขียน PHP
5
ทําไมตองเขียนโปรแกรมบนเว็บ?
• แนวโนมของการนําเสนอขอมูลบนอินเทอรเน็ตมีลกัษณะ Interactive คือ มกีิจกรรมที่ทําใหผูเขาชมมีสวนรวมกบัเว็บไซตมากขึ้น เชน Guestbook, Message board, Forms, ฯลฯ
• แนวโนมของการนําเสนอขอมูลบนอินเทอรเน็ตมีลกัษณะ Dynamic คือ มกีารปรับปรุงขอมูลใหทันสมัยอยูเสมอโดยอัตโนมตัิ
• รวดเร็วและประหยัด
6
PHP คืออะไร?• PHP ยอมาจากคําวา PHP Hypertext Preprocessor
(Professional Home Page)• PHP คือ ภาษาที่ใชในการเขียนโปรแกรมหรือใชในการพัฒนา Applications เพื่อใชในระบบอินเทอรเน็ต
• การทํางานของ PHP นั้นจะเปนการทํางานบนเครื่องใหบริการ (Server side) ที่ใชระบบปฏิบัติการ Windows หรือระบบปฏิบัติการ Unix
• สามารถประยุกตใชงาน PHP ในงานประมวลผลที่มีลักษณะที่หลากหลาย เชน งานที่เกี่ยวของกับการคํานวณ งานที่เกี่ยวของกับการประมวลผลขอความ หรืองานที่เกี่ยวของกับการบริหารจัดการและเขาถึงขอมลูในระบบฐานขอมลู
7
ทําไมตอง PHP?• งายตอการเรียนรูเนื่องจาก PHP ไดรับการพัฒนาตอมาจากภาษา C และภาษา Perl
• มีประสิทธภิาพสูง (เพียงพอตอการพัฒนา Applications บนอินเทอรเน็ต)
• มีแหลงขอมูลใหศึกษา และพันธมิตรทีจ่ะใหคําปรึกษาเวลาที่เกดิปญหา รวมทัง้มีตัวอยางและสคริปตสําเร็จรูปใหใชฟรีจํานวนมาก
• เปนเครื่องมอืทีส่ะดวกและสามารถพัฒนา Applications บนอินเทอรเน็ตไดอยางรวดเร็ว
8
PHP จากอดีตถึงปจจุบัน (1)
• ป ค.ศ. 1995 - นาย Rasmus Lerdorf ไดพัฒนาเครือ่งมอืจากชุดคําสั่งในภาษา Perl สําหรับการตรวจสอบผูชมทีเ่ขาชมหนาประวัติโดยยอบนเว็บ (online resume) บนเว็บและเผยแพรในชื่อ Personal Home Page tools
Data from Appendix A. History of PHP and related projects (http://th2.php.net/history)
9
PHP จากอดีตถึงปจจุบัน (2)
• ตอมามีการพัฒนา PHP ใหมโดยใชภาษา C และเพิ่มความสามารถในเรื่องของการติดตอกบัระบบฐานขอมูล การใชตัวแปรที่มลีกัษณะคลายกับในภาษา Perl (Perl-like variables) และความสามารถเกี่ยวกับเรือ่งแบบฟอรม และเผยแพรในชื่อ PHP/FI (Personal Home Page / Forms Interpreter)
Data from Appendix A. History of PHP and related projects (http://th2.php.net/history)
10
PHP จากอดีตถึงปจจุบัน (3)
• พฤศจิกายน ค.ศ. 1997 - PHP/FI ไดรับการพัฒนาตอและเผยแพรเปน PHP/FI 2.0 ซึ่งมกีารประมาณการวามีผูนําภาษานี้ไปใชหลายพันคนทั่วโลก และมเีว็บไซตที่ใชภาษานี้ประมาณ 50,000 เว็บไซต
Data from Appendix A. History of PHP and related projects (http://th2.php.net/history)
11
PHP จากอดีตถึงปจจุบัน (4)
• มิถุนายน ค.ศ. 1998 - นาย Andi Gutmans และนาย Zeev Suraski ไดทําการพัฒนาตอโดยเพิ่มฟงกชัน่ใหมากขึ้นเพื่อรองรับการพัฒนาระบบงาน e-Commerce รวมทั้งรองรับการติดตอกับระบบฐานขอมูล และคุณสมบัติในเรื่องของการโปรแกรมเชงิวัตถุ (Object Oriented Programming, OOP) และเผยแพรเปน PHP 3.0
Data from Appendix A. History of PHP and related projects (http://th2.php.net/history)
12
PHP จากอดีตถึงปจจุบัน (5)
• พฤษภาคม ค.ศ. 2000 - PHP ไดรับการพัฒนาตอ เพื่อใหสามารถรองรบัการพัฒนาโปรแกรมทีซ่ับซอน โดยรวมเอาเทคโนโลยีทีเ่รียกวา “Zend Engine” ไว และพัฒนาความสามารถในการทํางานบนโปรแกรม Web server ที่หลากหลายชนิดมากขึ้น และเผยแพรเปน PHP version 4.0
Data from Appendix A. History of PHP and related projects (http://th2.php.net/history)
13
PHP จากอดีตถึงปจจุบัน (6)
• กรกฎาคม ค.ศ. 2004 ไดมีการรวมเอา Zend Engine version 2.0 เขาไวใน PHP และเผยแพรเปน PHP version 5.0 ในปจจุบัน
Data from Appendix A. History of PHP and related projects (http://th2.php.net/history)
14
PHP จากอดีตถึงปจจุบัน (7)
Data from Netcraft (http://news.netcraft.com/)
PHP: 21,466,638 Domains, 1,293,874 IP Addresses
15
PHP จากอดีตถึงปจจุบัน (8)
Data from Security Space(http://www.securityspace.com/s_survey/data/man.200506/apachemods.html/)
Module Count %
PHP 5,082,557 46.46
Perl 1,335,652 12.21
Tomcat 5,578 0.05
Apache Module Report (July 1st, 2005)
16
การประยุกตใช PHP บนอินเทอรเน็ต (1)
http://www.missingpersons.or.th/
17
การประยุกตใช PHP บนอินเทอรเน็ต (2)
http://www.nectec.or.th/e-Card/
18
การประยุกตใช PHP บนอินเทอรเน็ต (3)
http://www.truehits.net/
19
การประยุกตใช PHP บนอินเทอรเน็ต (4)
http://www.nesac.or.th/
20
Web-based Application Architecture
21
การเตรียมตัวกอนเขียนโปรแกรม PHP
• ในการเขียนโปรแกรมดวย PHP จะตองเตรียมสวนประกอบดังตอไปนี้ คือเครือ่งคอมพิวเตอรสําหรับการเขียนโปรแกรมที่มกีารติดตั้งโปรแกรมประมวลผลขอความ (Text editor) โปรแกรมสําหรับโอนยายขอมลูเขาสูเครื่องใหบรกิาร (FTP program) และโปรแกรมเว็บบราวเซอร (Web browser)เครือ่งคอมพิวเตอรใหบริการเว็บ (Web server) ที่สนับสนุนการเขียนโปรแกรมดวยภาษา php
22
ขั้นตอนในการเขียนโปรแกรม PHP
23
โครงสรางของโปรแกรมภาษา PHP (1)• การเขียนโปรแกรมภาษา PHP จะตองมีสวนประกอบดังตอไปนี้
24
โครงสรางของโปรแกรมภาษา PHP (2)• จุดเริ่มตนและสิ้นสุดของการเขียนโปรแกรมภาษา
PHP สามารถใชสัญลกัษณได 4 รูปแบบ คือ1. SGML style***
<? ... ?>
2. XML style<?php ... ?>
3. JavaScript style<script language="php"> ... </script>
4. ASP style<% ... %>
25
โครงสรางของโปรแกรมภาษา PHP (3)• ชุดคําสั่งในภาษา PHP ประกอบดวยคําสั่งยอยๆ ซึ่งแตละคําสั่งจะตองสิ้นสดุดวยเครื่องหมาย เซมิโคลอน (;)
26
โครงสรางของโปรแกรมภาษา PHP (4)• การกําหนดสวนที่เปนคอมเมนต หรือสวนคําอธิบายที่ไมตองการใหเกิดการประมวลผลสามารถทําได 2 วิธี คือ
1. การกําหนดสวนคอมเมนตหลายๆ บรรทัดติดตอกัน
/* คอมเมนตบรรทัดที่ 1คอมเมนตบรรทัดที่ 2
.
. คอมเมนตบรรทัดที่ N */
2. การกําหนดสวนคอมเมนตบรรทัดเดียว ใชรูปแบบ
// คอมเมนต หรือ #คอมเมนต
27
เริ่มตนเขียน PHP (1)• เปดโปรแกรม Notepad โดยคลิ๊กเมาสที่ปุม Start เลือก All Programs เลือก Accessories แลวเลือกรายการ Notepad
• พมิพขอความตอไปนี้และบันทึกเปนไฟลชื่อ hello1.php
• ใชโปรแกรม FTP ในการโอนยายไฟลเขาสู Server• ทดสอบการแสดงผลโดยใชโปรแกรม Web
browser
<?echo “Hello World”;?>
28
เริ่มตนเขียน PHP (2)• ใชโปรแกรม Notepad เพื่อแกไขไฟล hello1.php• พมิพขอความตอไปนี้และบันทึกในไฟล
hello2.php
<?echo “Hello World”; // This is my first PHP program?>
29
เริ่มตนเขียน PHP (3)• ใชโปรแกรม Notepad เพื่อแกไขไฟล hello2.php• พมิพขอความตอไปนี้และบันทึกในไฟล hello3.php
<HTML><HEAD><title>Hello World</title></HEAD><BODY><center><b><?echo “Hello World”;?></b></center></BODY></HTML>
30
เริ่มตนเขียน PHP (4)• ใชโปรแกรม Notepad เพื่อแกไขไฟล hello3.php• พมิพขอความตอไปนี้และบันทึกในไฟล hello4.php
<HTML><HEAD><title>Hello World</title></HEAD><BODY><center><b><?echo “<font color=red>Hello World</font>”;?></b></center></BODY></HTML>
31
เริ่มตนเขียน PHP (5)• ใชโปรแกรม Notepad เพื่อแกไขไฟล hello4.php• พมิพขอความตอไปนี้และบันทึกในไฟล hello5.php<HTML><HEAD><title>Hello World</title></HEAD><BODY><center><b><?echo “<font color=\“#00FF00\”>Hello World</font>”;?></b></center></BODY></HTML>
32
ชนิดของขอมูลและตัวแปร
• คาคงที่• ตัวอยางการใชงานคาคงที่• ตัวแปรใน PHP• ตัวอยางการใชงานตัวแปรใน PHP• ตัวแปรระบบ• ชนิดของขอมูลใน PHP
33
คาคงที่
• คาคงที่ (Constant) คือ การกําหนดคาแทนตัวเลขหรือชุดของตัวอักษร ซึ่งการกําหนดคาคงที่จะใชรูปแบบ
• ตัวอยางเชน– define(“organization”, “NECTEC”);– define(“RED”, “#FF0000”);– define(“PI”, 3.14);– define(“NL”, “<br>\n”);
define(“ชื่อคาคงที่”, คาที่กําหนดให)
34
ตัวอยางการใชงานคาคงที่<HTML><HEAD><title>Hello World</title></HEAD><BODY><center><b><?define(“organization”, “NECTEC”);echo “Organization:” . organization;?></b></center></BODY></HTML>
constant.php
35
ตัวแปรใน PHP
• ตัวแปรใน PHP จะมีรูปแบบเปน$ชื่อตัวแปร
• ตัวอักษรพิมพใหญหรือเล็กมีผลกบัชื่อตัวแปร (Case-sensitive) เชน $Data ไมเทากบั $data
• การตั้งชื่อตัวแปรจะตองขึ้นตนดวยตัวอักษรภาษาอังกฤษหรือเครื่องหมาย Underscore (_) ตามดวยตัวเลข ตัวอักษร หรือ Underscore
36
ตัวอยางการใชงานตัวแปรใน PHP<HTML><HEAD><title>Hello World</title></HEAD><BODY><center><b><?$person = “Jon”;$Person = “Dang”;echo “Hello $person and $Person”;?></b></center></BODY></HTML>
variable1.php
37
ตัวแปรระบบ• ในการเขียนโปรแกรม PHP นั้น เราสามารถเรียกใชงานตัวแปรของระบบที่มอียูได ดังตัวอยาง
<HTML><HEAD><title>Hello World</title></HEAD><BODY><center><b><?echo “You are using $HTTP_USER_AGENT”;?></b></center></BODY></HTML>
variable2.php
38
การรับคาจากแบบฟอรม
• โดยทั่วไปแลว การเขียนโปรแกรมภาษา PHP ใชใ นก า ร รั บข อ มู ล จ ากแบบฟอรมที่สรางขึ้นมาดวยภาษา HTML เพื่ อนํ ามาประมวลผลและสงผลลัพธกลับไปสูผูใช
39
ขั้นตอนการรับคาจากแบบฟอรม
40
สวนประกอบของการรับคาจากแบบฟอรม
1. แบบฟอรมสําหรับกรอกขอมูล (form.html)ทําหนาที่ในการรับขอมูลจากผูใชผานทางโปรแกรมเว็บบราวเซอร
2. สคริปตรับคาและประมวลผล (getform.php)ทําหนาที่ในการรับขอมูลที่สงจากแบบฟอรม และนําขอมูลนั้นไปประมวลผลตามคําสั่งที่กําหนดไว และสงผลลัพธกลบัมาที่บราวเซอรของผูใช
41
ตัวอยางรับคาจากแบบฟอรม<HTML><HEAD><title>FORM</title></HEAD><BODY><form method="post" action="getform.php">Name: <input type="text" name="myname"><input type="submit" value="Send data"></form></BODY><HTML>
form.html
42
ตัวอยางรับคาจากแบบฟอรม
<?
$name = $_POST["myname"];echo "Hello $name";
?>
getform.php
43
ชนิดของขอมูลใน PHP
• ชนิดของขอมูลในภาษา PHP แบงออกเปน 7 ประเภท ดังตอไปนี้– ขอมูลชนดิตรรกะ– ขอมูลชนดิตัวเลข– ขอมูลชนดิตัวอักษร– ขอมูลชนดิอาเรย– ขอมูลชนดิออปเจกต– ขอมูลชนดิ Null– ขอมูลชนดิ Resource
44
ชนิดของขอมูลใน PHP• ขอมูลชนิดตรรกะ (Boolean) คือ ชนิดของขอมูล ที่มีเปนคาเปนไปไดแค 2 คาเทานั้น คือ true(จริง) หรือ false (เท็จ) ซึ่งขอมูลชนิดนี้นิยมใชในลักษณะของการกําหนดเงื่อนไขของการทํางานในโปรแกรม
• ขอมูลชนิดตัวเลข (Numeric) คือ ชนิดของขอมูลที่เปนตัวเลข สามารถนําไปคํานวณทางคณิตศาสตรได ขอมูลชนิดนี้สามารถแบงไดเปน– ตัวเลขจํานวนเต็ม (Integer) เชน 5, 0, -20– ตัวเลขจํานวนจริง (Floating Point & Real
Number) เชน 2.5, -0.025, 1.0
45
ชนิดของขอมูลใน PHP
• ขอมูลชนิดตัวอักษร (String) คือ ชนิดของขอมูลที่ประกอบดวยตัวเลข ตัวอักษร และอักขระพิเศษตางๆ ที่ไมสามารถนําไปคํานวณได ซึ่งการอางถึงขอมูลชนิดตัวอักษรนี้จะตองอางถงึขอมูลภายใตเครื่องหมาย “…”
• ขอมูลชนิดอาเรย (Array) เปนชนิดของขอมูลที่สามารถเก็บคาไดหลายคา ซึ่งขอมูลชนิดนี้เปนที่นิยมใชงานกันอยางแพรหลาย และมีใชในทุกภาษาเขียนโปรแกรม
46
ชนิดของขอมูลใน PHP
• ขอมูลชนิดออบเจ็ค (Object) ขอมูลชนิดนี้ใชในการเขียนโปรแกรมเชิงวัตถุ (Object-oriented Programming, OOP)
• ขอมูลชนิด NULL คือ ชนิดของขอมูลที่แทนความหมายวาไมมคีา
• ขอมูลชนิด Resource คือ ชนิดของขอมูลที่ใชเก็บคาอางอิงของทรัพยากรตางๆ ในระบบ ซึ่งจะมีการเก็บคาโดยอัตโนมัติ
47
การปฏิบัติการใน PHPArithmetic Operators
48
การปฏิบัติการใน PHPAssignment Operators
49
การปฏิบัติการใน PHPComparison Operators
50
การปฏิบัติการใน PHPLogical Operators
51
การทํางานตามเงื่อนไข
• การใชงานประโยค if• ตัวอยางการใชงานประโยค if• การใชงานประโยค switch
52
การใชงานประโยค if
if (เงื่อนไข 1){
ชุดคําสั่ง 1} elseif (เงื่อนไข 2){
ชุดคําสั่ง 2} else{
ชุดคําสั่ง 3}
53
ตัวอยางการใชงานประโยค if
if ($i == 1){
echo “i = 1”;} elseif ($i == 2){echo “i = 2”;
} else{echo “no match”;
}
if.php
54
การใชงานประโยค switch
switch (ตัวแปร){
case คาตัวแปร 1:ชุดคําสั่ง 1
case คาตัวแปร 2:ชุดคําสั่ง 2
case คาตัวแปร 3:ชุดคําสั่ง 3
default:ชุดคําสั่ง 4
}
55
ตัวอยางการใชงานประโยค switchswitch ($i){
case 1:echo “i = 1”;break;
case 2:echo “i = 2”;break;
default:echo “no match”;break;
}
switch.php
56
การควบคุมการทํางาน
• การควบคุมการทํางานดวย while• การควบคุมการทํางานดวย do…while• การควบคุมการทํางานดวย for• การควบคุมการทํางานดวย foreach
57
การควบคุมการทํางานดวย while
While (เงือ่นไข){
ชุดคําสั่ง}
58
ตัวอยางการใชงานคําสั่ง while
$i = 0;while ($i < 10){
echo “i = “.$i.”<br>”;$i++;
}
while.php
59
การควบคุมการทํางานดวย do…while
do{
ชุดคําสั่ง} While (เงือ่นไข)
60
ตัวอยางการใชงานคําสั่ง do…while
$i = 0;do{
echo “i = “.$i.”<br>”;$i++;
} while ($i < 10)
dowhile.php
61
การควบคุมการทํางานดวย for
for (คาเริ่มตน, เงือ่นไข, การเพิ่มหรอืลดขอมูล){
ชุดคําสั่ง}
62
ตัวอยางการใชงานคําสั่ง for
for ($i=0; $i<10; $i++){
echo “i = “.$i.”<br>”;}
for.php
63
การควบคุมการทํางานดวย foreach
foreach (ตัวแปรชนิดอาเรย as ชื่อตัวแปร){
ชุดคําสั่ง}
64
ตัวอยางการใชงานคําสั่ง foreach
$arr = array(“orange", “mango", “banana");foreach ($arr as $fruit){
echo “Fruit name: " . $fruit . "<br>";}
foreach.php
65
สรุป (1)• PHP (PHP Hypertext Preprocessor หรอืProfessional
Home Page) คือ ภาษาที่ใชในการเขียนโปรแกรมหรือพัฒนาระบบงานบนระบบอินเทอรเน็ต โดยมีการทํางานในลักษณะ Server side สามารถใชงานไดบนเครื่องใหบริการที่มรีะบบปฏิบตัิการ Windows หรือ Unix
• เครือ่งมอืที่ใชในการพัฒนาโปรแกรมภาษา PHP คือ โปรแกรมแกไขขอความ, เว็บบราวเซอร, FTP/SFTP program, เครื่องใหบรกิารเว็บ
• ขั้นตอนในการเขียนโปรแกรมภาษา PHP คือ เขียนโปรแกรมโดยใชโปรแกรมแกไขขอความ อปัโหลดเขาสูเครือ่งใหบรกิาร ทดสอบและแกไข
66
สรุป (2)• โครงสรางของการเขียนภาษา PHP
<?ชุดคําสั่งในภาษา PHP;
?>• การเขียนคอมเมนตในภาษา PHP สามารถทําไดโดยใช
<*…*>, //, #• ชนิดของขอมลูในภาษา PHP แบงออกเปน 7 ประเภท คือ ขอมลูชนิดตรรกะ, ขอมูลชนิดตัวเลข, ขอมูลชนิดตัวอักษร, ขอมูลชนิดอาเรย, ขอมูลชนิดออปเจกต, ขอมลูชนิด Null, ขอมลูชนิด Resource
67
สรุป (3)• ประโยคเงื่อนไขใน PHP
– IF…ELSE…– CASE
• ประโยคควบคุมการทํางาน– WHILE– DO…WHILE– FOR– FOREACH
68