Transcript php slide

PHP
Sukanchalika Boonmatham (SCAAT)
1
ประวัติความเป็ นมาของ PHP
• PHP นั้นถูกคิดค้นขึ้นมาในปี 1994 โดย Rasmus Lerdorf แต่เป็ นเวอร์ ชนั่ ที่ไม่เป็ น
ทางการหรื อรุ่ นทดลองนัน่ เอง ซึ่ งเวอร์ ชนั่ นี้ ได้มีการทดสอบกับเครื่ องของเขาเอง
โดยใช้ตรวจสอบติดตามเก็บสถิติขอ้ มูล ผูท้ ี่เข้าเยี่ยมชมประวัตสิ ่ วนตัวบนเว็บ
เพจของเขาเท่านั้น
• ต่อมา PHP เวอร์ ชนั่ แรกได้ถูกพัฒนาและเผยแพร่ ให้กบั ผูอ้ ื่นที่ตอ้ งการใช้ศึกษาใน
ปี 1995 ซึ่ งถูกเรี ยกว่า ''Personal Home Page'' ซึ่ งเป็ นที่มาของคาว่า PHP นัน่ เอง ซึ่ ง
ในระยะเวลานั้น PHP ยังไม่มีความสามารถอะไรที่โดดเด่นมากมาย จนกระทัง่ เมื่อ
ประมาณกลางปี 1995 Rasmus ได้คิดค้นและพัฒนาให้ PHP/PI หรื อ PHP เวอร์ ชนั่
2 ให้มีความสามารถจัดการเกี่ยวกับแบบฟอร์ มข้อมูลที่ถูกสร้างมาจากภาษา HTML
และสนับสนุนการติดต่อกับโปรแกรมจัดการฐานข้อมูล SQL จึงทาให้ PHP เริ่ มถูก
ใช้มากขึ้นอย่างรวดเร็ ว และเริ่ มมี ผูส้ นับสนุ นการใช้งาน PHP มากขึ้น โดยใน
ปลายปี 1996 PHP ถูกนาไปใช้ประมาณ 15,000 เว็บทัว่ โลก และเพิ่มจานวนขึ้น
เรื่ อย ๆ
Sukanchalika Boonmatham (SCAAT)
2
ประวัติความเป็ นมาของ PHP
• นอกจากนี้ ในราวกลางปี 1997 PHP ได้มีการเปลี่ยนแปลงและพัฒนาจากเจ้า
ของเดิมคือนาย Rasmus ที่ พฒั นาอยู่เพียงผูเ้ ดี ยว มาเป็ นทีมงาน โดยมี นาย Zeev
Suraski และ Adni Gutmans ทาการวิเคราะห์พ้ืนฐาน และได้นาโค้ดมาพัฒนาให้
เป็ น PHP เวอร์ ชนั่ 3 ซึ่ งมีความสามารถที่มีความสมบูรณ์มากขึ้น ในราวกลางปี
1999 PHP เวอร์ ชนั่ 3 ได้ถูกพัฒนาจนสามารถทางาน Red Hat Linux ได้ ซึ่ งใน
ปัจจุบนั PHP มีถึงเวอร์ ชนั่ 6 แล้ว
Sukanchalika Boonmatham (SCAAT)
3
ทาไมถึงต้ องเลือก PHP
1. PHP นั้นสามารถรันบนระบบปฏิบตั ิการได้มากมายเช่น Windows, Unix, Linux
และอื่นๆ
2. PHP นั้นรองรับกับการใช้งาน โปรแกรม Server จาลองมากมายเช่น Apache, IIS
และอื่นๆ
3. PHP นั้นเป็ นของฟรี ที่สามารถไปหา Download มาใช้งานได้ฟรี โดยไม่ต่องเสี ย
ค่าลิขสิ ทธิ์
4. ใช้กบั ระบบแฟ้ มข้อมูลได้อย่างมีประสิ ทธิ ภาพ
5. PHP มีความยืดหยุน่ ตัวสู ง ทาให้สามารถนาไปสร้างแอพพลิเคชันได้หลากหลาย
ประเภท
6. ใช้กบั การประมวลผลภาพได้
7. เรี ยนรู ้ง่าย เนื่องจาก PHP ใช้โครงสร้างและไวยากรณ์ภาษาง่าย ๆ เป็ นภาษาสคริ ปต์
ภาษาหนึ่ง ทาให้สามารถแทรกตาแหน่งใดก็ได้ในแท็กของ HTML
Sukanchalika Boonmatham (SCAAT)
4
หลักการทางานของ PHP
Client เรี ยกคาสัง่
PHP ผ่าน Browser
Client
Browser ส่งคาสัง่
ต่อไป Server
Browser
Browser แสดงผลให้
ผูใ้ ช้ที่ฝั่ง Client
Server ส่งผล
ต่อไป Browser
Server
PHP ส่งผลลัพธ์
เป็ น HTML ไป
เซิร์ฟเวอร์
HTML
PHP Libraries
Server ส่งคาสัง่
PHP ไปยัง PHP
Interpreter
PHP Interpreter
เรี ยกใช้ฟังก์ชนั ที่
ต้องการ
Sukanchalika Boonmatham (SCAAT)
ติดต่อฐานข้อมูล
MySQL ด้วย MySQL
ฟังก์ชนั MySQL
5
จะใช้ PHP ต้ องมีอะไรบ้ าง
1. ทาการติดตั้งตัวแปรภาษา PHP
2. ทาการติดตั้งโปรแกรม Web Server จาลองบนเครื่ องเพื่อรันภาษา PHP
(เว็บเซิ ร์ฟเวอร์ คือ แอปพลิเคชันที่ทาหน้าที่รับ และประมวลผลข้อมูลที่
ร้องขอจากผูใ้ ช้บริ การอินเทอร์ เน็ตโดยผ่านทางเว็บบราวเซอร์ หลังจาก
เว็บบราวเซอร์รับคาร้องและประมวลผลแล้ว ผลลัพธ์จะถูกส่ งกลับไปยัง
ผูใ้ ช้โดยแสดงผลในเว็บบราวเซอร์นนั่ เอง)
3. โปรแกรมที่ทาหน้าที่เป็ น Web Browser เช่น Internet Explorer
4. ทาการติดตั้งโปรแกรมจัดการฐานข้อมูล MySQL ลงในเครื่ อง
Sukanchalika Boonmatham (SCAAT)
6
รู ปแบบของ PHP มี 4 แบบ
• Short Style จะใช้ตามรู ปแบบของ SGML (Standard Generalized Markup
Language)
<? echo “My program PHP <BR>”; ?>
• XML Style สามารถใช้ได้กบั ภาษา XML (Extensible Markup Language)
<? php echo “My program PHP <BR>”; ?>
• Script Style ใช้ร่วมกับภาษา html แล้วระบุภาษาลงไปใน script
<SCRIPT LANGUAGE = ‘php’> echo “My program PHP <BR>”;
</SCRIPT>
• ASP Style ใช้รูปแบบของแท็กเหมือนกับภาษา ASP (Active Server Pages)
<% echo “My Program PHP. <BR>”; %>
Sukanchalika Boonmatham (SCAAT)
7
• PHP Statements
– ต้ องอยู่ภายใต้ การเปิ ดและปิ ดแท็กและปิ ดท้ ายคาสั่ งด้ วยเครื่องหมาย ;
• คาสั่ ง echo หรือ print
– echo เป็ นการแสดงข้ อความหรือข้ อมูล
• หมายเหตุ (Comment)
– ใช้ สาหรับอธิบายรายละเอียดของโปรแกรม ตัวแปรภาษาจะมองข้ ามข้ อความ
ในส่ วนของ Comments
• การขึน้ บรรทัดใหม่
Sukanchalika Boonmatham (SCAAT)
8
ตัวแปร
•
•
•
•
•
•
ขึ้นต้นด้วยเครื่ องหมาย $
ชื่อสามารถเป็ นได้ท้ งั ตัวอักษร และตัวเลข _ และ $
มีความยาวตั้งแต่ 1 ตัวอักษรไปจนถึง 255 ตัวอักษร
ตัวอักษรของชื่อแรกห้ามเป็ นตัวเลข
ควรตั้งชื่อให้สื่อความหมาย
การใช้ตวั พิมพ์เล็กและพิมพ์ใหญ่เพื่อตั้งชื่อนั้นจะไม่เหมือนกัน เช่น
$totalscore จะไม่เหมือนกับ $TotalScore
• ตัวแปรที่ซ้ ากับที่ต้ งั มาแล้วจะทาให้ค่าที่เก็บเดิมนั้นหายไป
Sukanchalika Boonmatham (SCAAT)
9
ชนิดของตัวแปร
•
•
•
•
•
Integer คือ เลขจานวนเต็ม
Double คือ เลขจานวนจริ ง
String คือ ตัวอักษร ต้องอยูภ่ ายใต้เครื่ องหมาย double quotes (“ ”)
Array คือ ชุดของข้อมูลที่เป็ นชนิดเดียวกัน
Object คือ กาหนดให้ตวั แปรเก็บคุณสมบัติของ Object ไว้ เช่น attribute
และ method โดยใช้ชื่อคลาสเป็ นตัวกาหนด
Sukanchalika Boonmatham (SCAAT)
10
ค่ าคงที่
ค่าคงที่เป็ นค่าที่กาหนดให้กบั ตัวแปรและไม่สามารถเปลี่ยนแปลงค่า
นั้นในขณะใช้งาน ค่าคงที่สามารถเก็บข้อมูลได้ชนิดเดียวกับตัวแปร
ค่าคงที่ที่ใช้งานกับ PHP มีอยูด่ ว้ ยกัน 2 ประเภท คือ
•
–
ค่าคงที่กาหนดโดย PHP สร้างขึ้นมาเพื่อให้นาเอาไปใช้งานได้ทนั ที
PHP OS เป็ นค่าคงที่ที่แสดงระบบปฏิบตั ิการที่ใช้ PHP
PHP VERSION เป็ นค่าคงที่ที่แสดงเวอร์ชนั ของ PHP ที่นามาใช้งาน
–
ค่าคงที่ที่ผใู ้ ช้กาหนดเอง สามารถกาหนดค่าคงที่เพิ่มเติมได้ดว้ ยตัวเอง
Define (ConstName, Value);
ConstName เป็ นชื่อของค่าคงที่ที่ต้ งั ขึ้นมาเอง
Value
เป็ นค่าที่เก็บไว้ในค่าคงที่
Sukanchalika Boonmatham (SCAAT)
11
Operators
•
•
•
•
Operators คือ เครื่ องหมายที่ใช้ในการคานวณหรื อเปรี ยบเทียบ
operator ที่ใช้ใน PHP แบ่งได้เป็ น 7 ประเภท
ประเภทที่ 1 Arithmetic Operators
ประเภทที่ 2 String Operators
ประเภทที่ 3 Assignment Operators
ประเภทที่ 4 Incrementing/Decrementing
Sukanchalika Boonmatham (SCAAT)
12
• ประเภทที่ 5 Comparison Operators
เครื่องหมาย
ชื่อโอเปอเรเตอร์
รู ปแบบ
==
Equals
$a == $b
$a === $b
===
Indentical
!=
Not equal
$a != $b
<>
Not equal
$a <> $b
<
Less than
$a < $b
>
Greater than
$a > $b
<=
Less than or equal to $a <= $b
=>
Greater than or equal to $a => $b
ความหมาย
เท่ากับ
เหมือนกัน
ไม่เท่ากับ
ไม่เท่ากับ
น้อยกว่า
มากกว่า
น้อยกว่าหรื อเท่ากับ
มากกว่าหรื อเท่ากับ
Sukanchalika Boonmatham (SCAAT)
13
ประเภทที่ 6 Logical Operators
เครื่องหมาย
ชื่อโอเปอเรเตอร์
รูปแบบ
and
และ
$a and $b
เป็ นจริ ง เมื่อ $a และ $b มีค่าเป็ นจริ ง
&&
และ
$a && $b
เป็ นจริ ง เมื่อ $a และ $b มีค่าเป็ นจริ ง
Or
หรื อ
$a or $b
เป็ นจริ ง เมื่อ $a หรื อ $b ตัวใดตัวหนึ่งมีค่าเป็ นจริ ง
||
หรื อ
ไม่
$a || $b
เป็ นจริ ง เมื่อ $a หรื อ $b ตัวใดตัวหนึ่งมีค่าเป็ นจริ ง
ค่าตรงข้ามกับค่าเดิม
!
! $a
ความหมาย
Sukanchalika Boonmatham (SCAAT)
14
• ประเภทที่ 7 Bitwise Operators
เครื่องหมาย ชื่อโอเปอเรเตอร์
&
And
รู ปแบบ
$a & $b
ความหมาย
เป็ นบิตที่เป็ นเซ็ตของ $a และ $b
|
~
<<
Or
Not
Shift Left
$a | $b
~ $a
$a << $b
>>
Shift Right
$a >> $b
เป็ นบิตที่เป็ นเซ็ตของ $a และ $b
เป็ นบิตที่ไม่เป็ นเซ็ตของ $a
ขยับบิต $a ไปทางซ้ายเป็ น
จานวน $b ครั้ง
ขยับบิต $a ไปทางขวาเป็ น
จานวน $b ครั้ง
Sukanchalika Boonmatham (SCAAT)
15
กลุ่มคาสั่ งแบบมีเงือ่ นไข
• If
If (เงื่อนไข)
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขเป็ นจริ ง;}
• If…else
If (เงื่อนไข)
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขเป็ นจริ ง;}
Else
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขเป็ นเท็จ;}
Sukanchalika Boonmatham (SCAAT)
16
กลุ่มคาสั่ งแบบมีเงือ่ นไข (ต่ อ)
• If…elseif
If (เงื่อนไขที่ 1)
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขที่ 1 เป็ นจริ ง;}
Elseif (เงื่อนไขที่ 2)
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขที่ 2 เป็ นจริ ง;}
Elseif (เงื่อนไขที่ 3)
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขที่ 3 เป็ นจริ ง;}
Sukanchalika Boonmatham (SCAAT)
17
กลุ่มคาสั่ งแบบมีเงือ่ นไข (ต่ อ)
• switch
switch (ตัวแปร)
{case ค่าที่ 1 : คาสัง่ ที่ 1;
Break;
case ค่าที่ 2 : คาสัง่ ที่ 2;
Break;
…
case ค่าที่ N : คาสัง่ ที่ N;
Break;
Default : คาสัง่ เมื่อไม่มีค่าที่ตรงกับที่ระบุใน case;
}
[break จะทาให้โปรแกรมกระโดดออกไปทางานนอกคาสัง่ switch]
Sukanchalika Boonmatham (SCAAT)
18
กลุ่มคาสั่ งแบบวนรอบ
• while
while (เงื่อนไข)
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขเป็ นจริ ง;}
• do …while
do
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขเป็ นจริ ง;}
while (เงื่อนไข);
• for
for (คาสัง่ เริ่ มต้นของตัวแปร ; เงื่อนไข ; เปลี่ยนแปลงค่าตัวแปร)
{คาสัง่ ต่าง ๆ เมื่อเงื่อนไขเป็ นจริ ง;}
Sukanchalika Boonmatham (SCAAT)
19
Function of PHP
ฟั งก์ชัน คื อ โปรแกรมย่อยที่ สามารถทาการประมวลผลได้ด้ว ย
ตั ว เอง และสามารถคื น ผลลั พ ธ์ จากการประมวลผลนั้ นกลั บ สู่
โปรแกรมหลัก
• ฟังก์ชันทีม่ ากับ PHP สามารถเรียกใช้ งานได้ ทันที
• Checkdate()
– Checkdate(int_month, int_day, int_year)
• Date()
– Date (format [,int_timestamp])
Sukanchalika Boonmatham (SCAAT)
20
• ฟังก์ชันทีผ่ ู้ใช้ สร้ างขึน้ มาเอง
– ฟังก์ชนั ที่ไม่มีการส่ งค่าระหว่างฟั งก์ชนั
– ฟังก์ชนั ที่มีการส่ งค่าระหว่างฟั งก์ชนั
Function Func_Name(parameter)
{
Return [instuctions];
}
Func_Name(parameter_value)
Sukanchalika Boonmatham (SCAAT)
21
• ฟังก์ชนั่ floor()
– จะทาการปั ดเศษทศนิยมทิ้งทั้งหมด ไม่วา่ ค่าทศนิยมจะ เกิน .5 หรื อไม่
Sukanchalika Boonmatham (SCAAT)
22
Array
อะเรย์ คือ ชุดของตัวแปรที่แสดงอยูใ่ นรู ปของลาดับที่ เพื่อใช้สาหรับเก็บค่า
ของข้อ มู ล ที่ อ ยู่ใ นกลุ่ ม เดี ย วกัน ส่ ว นตัว แปรประเภทอะเรย์ จะถู ก เก็บ อยู่ใ น
หน่ วยความจาในตาแหน่ งที่ ต่อเนื่ องกัน อะเรย์จะมี ขนาดใหญ่หรื อเล็กขึ้ นอยู่กบั
จานวนมิติ (Dimension) ที่ กาหนด ซึ่ งชนิ ดของข้อมูลในอะเรย์จะต้องเป็ นชนิ ด
เดียวกัน
ตัวแปรที่เก็บอยูใ่ นอะเรย์เรี ยกว่าอีลีเมนต์ (element) แต่ละอีลีเมนต์ในอะเรย์
จะมี อินเด็กซ์ เพื่อใช้สาหรั บระบุ ค่าที่ เก็บอยู่ภายในแต่ละ element ของอะเรย์
จานวนอินเด็กซ์ของอะเรย์จะกาหนดโดยผูใ้ ช้
อินเด็กซ์ของอะเรย์ ใช้สาหรั บอ้างอิงถึงแต่ละอีลีเมนต์ที่อยู่ในอะเรย์ ค่าอิน
เด็กซ์จะเริ่ มที่ 0 และสามารถกาหนดอินเด็กซ์ของอะเรย์เป็ นตัวอักษรได้
Sukanchalika Boonmatham (SCAAT)
23
การสร้ างอะเรย์ ด้วยฟังก์ ชัน
– การใช้ ฟังก์ชัน array()
– การใช้ ฟังก์ชัน range()
• การนาข้ อมูลจากเท็กซ์ ไฟล์มาเก็บในอะเรย์
• การกาหนดอินเด็กซ์ ของอะเรย์ เป็ นตัวอักษร
• การเข้ าถึงข้ อมูลภายในอะเรย์
– การใช้ ฟังก์ชัน each()
– การใช้ ฟังก์ชัน list()
Sukanchalika Boonmatham (SCAAT)
24
การเรียงลาดับในอะเรย์
• การเรี ยงลาดับอะเรย์ที่มีอินเด็กซ์เป็ นตัวเลข
– เรี ยงลาดับจากน้อยไปมาก โดยใช้ฟังก์ชนั sort()
– เรี ยงลาดับจากมากไปน้อย โดยใช้ฟังก์ชนั rsort()
• การเรี ยงลาดับอะเรย์ที่มีอินเด็กซ์เป็ นตัวอักษร
– เรี ยงลาดับจากน้ อยไปมากตามข้ อมูลในอะเรย์ โดยใช้ฟังก์ชนั asort()
– เรี ยงลาดับจากน้ อยไปมากตามอินเด็กซ์ ของอะเรย์ โดยใช้ฟังก์ชนั ksort()
– เรี ยงลาดับจากมากไปน้ อยตามข้ อมูลในอะเรย์ โดยใช้ฟังก์ชนั arsort()
– เรี ยงลาดับจากมากไปน้ อยตามอินเด็กซ์ ของอะเรย์ โดยใช้ฟังก์ชนั krsort()
Sukanchalika Boonmatham (SCAAT)
25
อะเรย์ หลายมิติ
อะเรย์หลายมิติคือ อะเรย์ที่มีสมาชิกเป็ นข้อมูลแบบอะเรย์ (อะเรย์
ซ้อนอะเรย์)
Code
BKK
PB
TD
Description
Bangkok
Phetchaburi
Trad
Amphur
36
8
7
$province[0][0] $province[0][1] $province[0][2]
$province[1][0] $province[1][1] $province[1][2]
$province[2][0] $province[2][1] $province[2][2]
Sukanchalika Boonmatham (SCAAT)
26
•
•
•
•
การใช้ ฟังก์ ชัน shuffle()
การใช้ ฟังก์ ชัน array_reverse()
การใช้ ฟังก์ ชัน array_push()
การใช้ ฟังก์ ชัน array_count_values
Sukanchalika Boonmatham (SCAAT)
27
การใช้งานสตริ ง
สตริ ง (String) คือ ชุดของตัวอักษรซึ่งเกิดจากการรวมกันของ
ตัวอักษรหลาย ๆ ตัว ก่อนที่จะนาสตริ งไปใช้งานควรจัดการข้อมูลใน
สตริ งให้เป็ นระเบียบก่อน
• การหาขนาดความยาวข้ อความ
– Function strlen
• การตัดช่ องว่ างภายในสตริง
– Function trim
– Function Ltrim
– Function chop
Sukanchalika Boonmatham (SCAAT)
28
• การเปลีย่ นรูปแบบของตัวอักษร
–
–
–
–
Strtoupper แปลงประโยคให้ เป็ นตัวอักษรพิมพ์ใหญ่ ท้งั หมด
Strtolower แปลงประโยคให้ เป็ นตัวอักษรพิมพ์เล็กทั้งหมด
Ucfirst แปลงตัวอักษรตัวแรกของประโยคให้ เป็ นตัวอักษรพิมพ์ ใหญ่
Ucwords แปลงตัวอักษรตัวแรกของทุกตัวทีข่ นึ้ ต้ นคาใหม่ ให้ เป็ นตัวอักษร
พิมพ์ใหญ่
• การรวมข้ อความจากอะเรย์ กลับเป็ นข้ อความ
– Implode
– Join
Sukanchalika Boonmatham (SCAAT)
29
• การแบ่ งข้ อความออกจากกัน
– explode
• ตัดข้ อความบางส่ วนมาใช้
– strchr ตัดข้อความบางส่ วนตั้งแต่ตวั แรกที่พบจนถึงท้ายสุ ด
– strrchr ตัดข้อความบางส่ วนตั้งแต่ตวั สุ ดท้ายที่พบจนถึงท้ายสุ ด
– stristr ตัดข้อความบางส่ วนตั้งแต่ตวั แรกที่พบจนถึงท้ายสุ ดโดยไม่สนใจเรื่ อง
ตัวพิมพ์เล็กพิมพ์ใหญ่
– strstr ตัดข้อความบางส่ วนตั้งแต่ตวั แรกที่พบจนถึงท้ายสุ ดโดยสนใจเรื่ อง
ตัวพิมพ์เล็กพิมพ์ใหญ่
Sukanchalika Boonmatham (SCAAT)
30
• การแสดงข้ อความซ้าหลายรอบ
– str_repeat
• การเปรียบเทียบสตริง
– strnatcmp
• การหาตาแหน่ งของสตริงย่ อย
โดยการคื นค่าถ้าฟั งก์ชนั ไม่พบค่าสตริ งที่ คน้ หา จะส่ งคืนค่าเป็ นเท็จ ซึ่ งค่า
เท็จจะมี ค่าเท่ากับ 0 ทาให้เกิ ดปั ญหาเพราะอักขระตัวแรกของภาษา PHP คื อ
ตาแหน่งที่ 0 แก้ปัญหานี้ได้โดยการใช้เครื่ องหมาย === เพื่อทดสอบค่าที่ส่งคืนมา
– strops
Sukanchalika Boonmatham (SCAAT)
31
• การค้ นหาและเปลีย่ นค่ าสตริง
– str_replace
Sukanchalika Boonmatham (SCAAT)
32