510 likes | 652 Views
PHP. Hypertext Preprocessor. มาโนชญ์ แสงศิริ ครูผู้ช่วย โรงเรียนพิจิตรพิทยาคม. เดิม PHP ย่อมาจาก Personal Home Page. ลักษณะของเว็บเพจ. แบบ Static ไม่มีการเปลี่ยนแปลงจนกว่าจะมีการ Upload ไฟล์ใหม่ มีการปรับปรุงเว็บยาก เช่น HTML
E N D
PHP Hypertext Preprocessor มาโนชญ์ แสงศิริ ครูผู้ช่วย โรงเรียนพิจิตรพิทยาคม เดิม PHP ย่อมาจาก Personal Home Page
ลักษณะของเว็บเพจ • แบบ Static ไม่มีการเปลี่ยนแปลงจนกว่าจะมีการ Upload ไฟล์ใหม่ • มีการปรับปรุงเว็บยาก เช่น HTML • แบบ Dynamic เพื่อให้มีการตอบสนองต่อผู้ใช้ได้ทันที • CGI (Common Gateway Interface) • Perl • DHTML • การแทรก Script ลงใน HTML • ASP PHP JSP ฯลฯ
Web Server • การทำงานของ เว็บเพจ • Client/Server • Server ของเว็บเพจ เรียกว่า Web Server • IIS (Internet Information Services) • PWS (Personal Web Server) • Apache • Browser • Internet Explorer • Netscape
ลักษณะการทำงานของ Internet Response Web Server Request Client
Static Web Pages • เป็นเว็บเพจที่พัฒนาในระยะแรกๆ • มีการตอบสนองต่อผู้ใช้ที่จำกัด เนื่องจากมีการกำหนดรูปแบบการกระทำต่างๆไว้ล่วงหน้า • รูปแบบของ Page จึงเป็นลักษณะเดิมอยู่เสมอ
3. Web server locates .html file 1. Author Writes HTML 4. HTML stream (from .htm page) Returned to browser Web Server 5. Browser Processes HTML And displays Pages Client 2. Client request Webpage
Dynamic Web Pages • มีโครงสร้างเหมือนกับ Static Web Pages • แต่มีชุดคำสั่ง Scriptที่ทำให้ HTML tag สามารถสนองต่อการกระทำต่างๆ ได้ และสามารถกำหนดการทำงานได้ เช่น • สั่งให้คำนวณหลังคลิกปุ่ม • นำข้อมูลจากฐานข้อมูลขึ้นมาแสดงได้ • การทำให้ภาพเคลื่อนไหวบน Page ได้
Script เว็บเพจที่กำหนดการกระทำต่างๆเพื่อสามารถรองรับสถานการณ์ ที่ความว่าจะเกิดขึ้นได้ทันที • Client-Side Script • จะถูกแปล Script โดย Browser เช่น VBScript, JavaScript • Server-Side Script • จะถูกแปลและประมวลผลโดย Web Server เช่น ASP , PHP ,JSP
Client-Side Script 3. HTML stream (from .htm page) Returned to browser 2. Web Server lacate .htm File 4. Browser Process Client-side script Web Server 5. Browser Processes HTML And displays Pages Client 1. Client Request Webpage
Server-Side Script 3. Web server processes instruction to create HTML 2. Web server Instruction File 4. HTML Stream returned to Browser Web Server 5. Browser Processes HTML And displays Pages Client 1. Client Request Webpage
Scripting Language • PHPเป็นภาษาจำพวก scripting language คำสั่งต่างๆจะเก็บอยู่ในไฟล์ที่เรียกว่า สคริปต์ (script) และเวลาใช้งานต้องอาศัยตัวแปลชุดคำสั่ง ตัวอย่างของภาษาสคริปก็เช่น JavaScript, Perl เป็นต้น • ลักษณะของ PHP ที่แตกต่างจากภาษาสคริปต์แบบอื่นๆ คือ PHP ได้รับการพัฒนาและออกแบบมา เพื่อใช้งานในการสร้างเอกสารแบบ HTML โดยสามารถสอดแทรกหรือแก้ไขเนื้อหาได้โดยอัตโนมัติ ดังนั้นจึงกล่าวว่า PHP เป็นภาษาที่เรียกว่า server-side หรือ HTML-embedded scripting language เป็นเครื่องมือที่สำคัญชนิดหนึ่งที่ช่วยให้เราสามารถสร้างเอกสารแบบ Dynamic HTML ได้อย่างมีประสิทธิภาพและมีลูกเล่นมากขึ้น
ลักษณะเด่นของ PHP • ใช้ได้ฟรี • PHP เป็นโปรแกรมวิ่งข้าง Sever ดังนั้นขีดความสามารถไม่จำกัด • PHP วิ่งบนเครื่อง UNIX,Linux,Windows ได้หมด • เรียนรู้ง่าย เนื่องจาก PHP ฝั่งเข้าไปใน HTML และใช้โครงสร้างและไวยากรณ์ภาษาง่ายๆ • เร็วและมีประสิทธิภาพ • ใช้ร่วมกับ XML ได้ทันที • ใช้กับระบบแฟ้มข้อมูลได้ • ใช้กับข้อมูลตัวอักษรได้อย่างมีประสิทธิภาพใช้กับโครงสร้างข้อมูลใช้ได้แบบ Scalar,Array,Associative array • ใช้กับการประมวลผลภาพได้
ติดตั้ง PHP โดยใช้ Apache จำลองเป็น Web Server • สำหรับการติดตั้ง Apache ผมจะแนะนำโปรแกรม Appserv ซึ่งเป็น โปรแกรมที่รวมเอา package • Appserv คือ โปรแกรมที่รวมเอา Package ประกอบด้วย • Apache Web Server • PHP Script Language • MySQL Database • phpMyAdmin Database Manager
การเซ็ต EditPlus ให้เชื่อมต่อกับ Weberver • เปิดโปรแกรม Edit Plus แล้วเข้าไปที่เมนู ToolsPreferences • จากนั้นไปกดที่ Tools • กด Add เพื่อเพิ่มรายการ • กด Edit เพื่อแก้ไขรายการเดิม (ซึ่งปกติมันจะอ่านที่อยู่บนสุดเสมอ) • จากนั้นกำหนดชื่อ Host หรือ IP • แล้วกำหนด Folder ที่จะทำงาน • จากนั้นกลับที่หน้าจอหลัก แล้วลองเขียนโปรแกรม PHP แล้วกด Ctrl+B เพื่อทดสอบ
ใช้โปรแกรม Notepad หรือ editor สร้างเอกสาร PHP โดยมีคำสั่งดังนี้ sample.php <html><title>ทดสอบ Script แรก</title><body><?php echo "ผมสามารถเขียน PHP ได้แล้วครับ";?> </body></html> ให้บันทึกไฟล์ลงที่โฟลเดอร์ C:\AppServ\www
คำอธิบายหรือ Comment ในภาษา PHP • ถ้าเราต้องการเขียนคำอธิบายในส่วนใดๆก็ตามของสคริปต์ • เราก็จะสามารถทำได้โดยใช้ /* ... */ เหมือนในภาษาซี • หรือ // เหมือนในภาษาจาวา หรือ # เหมือน shell script โปรดสังเกตว่า // ใช้เขียนนำคำอธิบายในภายบรรทัดหนึ่งๆเท่านั้น ส่วน # ใช้เริ่มต้นของบรรทัดที่เขียนคำอธิบาย <? # comment $a = 41; // set $a to 41. $b =10; // set $b to 10. $b += $a; /* add $a to $b */ echo $b." \n"; ?> sample2.php
คำสั่งพื้นฐาน คำสั่ง echo • รูปแบบคำสั่ง echo ข้อความที่1,ข้อความที่1,ข้อความที่1,....; ตัวอย่าง <?echo "Hello Word <br>";echo "Hello PHP Programming"; echo “<br>”;echo "PHP Programming"; ?> sample3.php
ชนิดของข้อมูลและตัวแปรชนิดของข้อมูลและตัวแปร • สำหรับการเขียนโปรแกรมสำหรับภาษาคอมพิวเตอร์ระดับสูง สิ่งที่จะขาดเสียมิได้คือ การกำหนดและใช้ตัวแปร (variable) ตัวแปรในภาษา PHP จะเหมือนกับในภาษา Perl คือเริ่มต้นด้วยเครื่องหมาย dollar ($) โดยเราไม่จำเป็นต้องกำหนดแบบของข้อมูล (data type) อย่างเจาะจงเหมือนในภาษาซี เพราะว่า ตัวแปลภาษาจะจำแนกเองโดยอัตโนมัติว่า ตัวแปรดังกล่าว ใช้ข้อมูลแบบใด ในช่วงเวลานั้นๆ เช่น ข้อความ จำนวนเต็ม จำนวนที่มีเลขจุดทศนิยม ตรรก เป็นต้น
ชนิดของข้อมูลและตัวแปรชนิดของข้อมูลและตัวแปร • Integer จำนวนเต็มบวก และจำนวนเต็มลบ เลขฐานสิบ ฐานแปด และฐานสิบหก • Float เก็บจำนวนจริงทั้งบวกและลบ ทั้งมีทศนิยม และไม่มีทศนิยม • String เก็บจำนวนตัวเลข และ ข้อความ • Array เก็บข้อมูลทเป็นชุด หรือ อาร์เรย์ • Object เก็บข้อมูลในลักษณะออปเจ็กต์เพื่อการเรียกใช้เป็น • Class Object หรือ FunctionType juggling เก็บข้อมูลในลักษณะเฉพราะหรือผู้ที่ใช้เพิ่มเข้ามา
หลักการตั้งชื่อ ตัวแปร • $var-name=value; • ขอบเขตการตั้งชื่อตัวแปร- ขึ้นต้นด้วยเครื่งหมาย $ แล้วตามด้วยตัวอักษร A-Z,a-z- มีความยาวไม่เกิน 255 ตัวอักษร- ห้ามมีจุดทศนิยม หรือช่องว่าง- จะต้องไม่ตรงกับคำสงวน และควรตั้งชื่อ ให้มีความหมายใกล้เคียงกับ ค่าที่เก็บ- ตัวอักษรเล็กหรือใหญ่จะเป็นตัวแปรที่ไม่เหมือนกัน- ถ้าตั้งตัวแปรมาใหม่ แล้วทับตัวแปรเก่า ค่าของตัวแปรเก่าจะหายไป
การตรวจสอบว่าตัวแปร sample4.php sample5.php การตรวจสอบชนิดของตัวแปรgettype($var-name); ตัวอย่างเช่น<?$a=1234;echo gettype($a);?> การตรวจสอบว่าตัวแปรนี้มีการกำหนดค่าหรือไม่isset($var-name);ตัวอย่างเช่น <? $a=1234; if (isset($a)){ echo "มีการกำหนดค่าตัวแปร"; }else{ echo “ไม่มีการกำหนดค่าตัวแปร"; }?>
การตรวจสอบว่าตัวแปร การตรวจสอบว่าตัวแปรนี้มีค่าว่างหรือไม่empty($var-name); <? $a=1234;if (empty($a)){echo "ตัวแปรมีค่าว่าง"; }else{echo “ตัวแปรมีค่าไม่ว่าง"; }?> sample6.php
การประกาศค่าตัวแปร • 1.Integer เก็บจำนวนเต็มบวก และจำนวนเต็มลบ เลขฐานสิบ ฐานแปด และฐานสิบหก$a=123;$a=-123; <?$a=123;$b=456;$c=$a+$b;echo $c;?> sample7.php
การประกาศค่าตัวแปร(ต่อ)การประกาศค่าตัวแปร(ต่อ) • 2. Float เก็บจำนวนจริงทั้งบวกและลบ ทั้งมีทศนิยม และไม่มีทศนิยม $a=1.23;$a=-1.23; <? $a=123.45; $b=456.78; $c=$a+$b;echo $c;?> sample8.php
การประกาศค่าตัวแปร(ต่อ)การประกาศค่าตัวแปร(ต่อ) • 3.String เก็บจำนวนตัวเลข และ ข้อความ • $a="PHP Programming";$a="1234567890"; <?$a="PHP Programming";$b="1234567890"; echo $a.”<br>”.$b;?> sample9.php
สัญลักษณ์พิเศษ • สัญลักษณ์ \n หมายถึงการขึ้นบรรทัดใหม่ เป็น escape character ตัวหนึ่ง (สำหรับตัวอื่นๆ โปรดดูในตาราง) เมื่อพิมพ์ข้อความเป็นเอาพุต และโปรดสังเกตว่า สำหรับการใช้งานภายในเอกสาร HTML การขึ้นบรรทัดใหม่โดยใช้ \n จะแตกต่างจากการขึ้นบรรทัดโดยใช้ <BR> ใน HTML Escaped characters \n newline \r carriage \t horizontal tab \\ backslash \$ dollar sign \" double-quote %% percent
ตัวแปร Array • เป็นตัวแปรชุดที่มีการเก็บค่าตัวแปรที่มี ชนิดของข้อมูลเหมือนกัน เช่น เก็บ รายชื่อของพนักงาน อายุ เงินเดือน • Arrary 1 มิติ • การประกาศตัวแปร $a[5] จะมีสมาชิก 6 ตัวคือ $a[0],$a[1],$a[2],$a[3],$a[4],$a[5] $a[4]; $a[0]="Somchai";$a[1]="Werachai";$a[2]="Surachai";$a[3]="Adisorn";
ค่าคงที่ Constant • คือ ค่าที่กำหนดแล้ว สามารถเรียกใช้งานได้ทุก ๆ ครั้ง ที่เราประกาศขึ้นมา สามารถแบ่งออกได้เป็น 2 ประเภทคือ • 1.ค่าคงที่ PHP กำหนดมาให้ เป็นค่าที่เราสามารถนำไปใช้งานได้ทันที่
ค่าคงที่ Constant (ต่อ) • 2.ค่าคงที่ที่ผู้ใช้กำหนดขึ้นเองเราสามารถกำหนดค่าคงที่ เหมือนกับการประกาศตัวแปร รูปแบบdefine(Constant-name,Value) เมื่อ Constant-name ชื่อ ของค่าคงที่Value ค่าที่จะกำหนดให้ เช่น define("name",“MANA TUDTU");echo name; define("old","21");define ("add",“Phichit");
Operator และ การเปรียบเทียบทางคณิต ฯ ใน PHP มีโอเปอเรเตอร์ด้วยกันทั้งหมด 6 ชนิดด้วยกันดังนี้ จะยกตัวอย่างที่จำเป็นที่เราต้องนำไปใช้เท่านั้นครับ
Operator และ การเปรียบเทียบทางคณิต ฯ(ต่อ) • 1. Arithmetic Operators โอเปอเรเตอร์ทางคณิตศาสตร์
Operator และ การเปรียบเทียบทางคณิต ฯ(ต่อ) • 2. String Operators เป็น โอเปอเรเตอร์ที่ใช้กับข้อความซึ่งจะใช้ (.) เพียง โอเปอเรเตอร์เดียว ตัวอย่าง sample10.php <?$a = "PHP";$b = "Programming";$c = $a.$b;echo $c;?> Out Put PHPProgramming
Operator และ การเปรียบเทียบทางคณิต ฯ(ต่อ) • 3. Assignment Operators โอเปอเรเตอร์กำหนดค่า โอเปอเรเตอร์พื้นฐานคือ "=" คือคุณจะต้องคิดว่าค่าทางซ้ายมือของโอเปอเรเตอร์คือผลลัพธ์จากคำสั่งที่กระทำทางขวามือ $a = 3; $a += 5; // $a = 8, มีความหมายว่า $a = $a + 5; $b = "Hello ";$b .= "There!"; // $b = "Hello There!",เหมือนกับ $b = $b . "There!";
Operator และ การเปรียบเทียบทางคณิต ฯ(ต่อ) • 4. Logical Operators โอเปอเรเตอร์เชิงตรรกศาสตร์
Operator และ การเปรียบเทียบทางคณิต ฯ(ต่อ) • 5. Comparison Operators โอเปอเรเตอร์เชิงเปรียบเทียบ
Operator และ การเปรียบเทียบทางคณิต ฯ(ต่อ) • 6. Operator Precedence โอเปอเรเตอร์เพิ่ม-ลดค่าลดค่า
เงื่อนไขสายงานเพื่อการตัดสินใจ 1. if...else สามารถใช้ได้ 2 วิธีคือ sample11.php <? if ($x == 0) { echo $x; echo " is zero.<BR>\n"; } else if ($x > 0) { echo $x; echo " is positive.<BR>\n"; } else { echo $x; echo " is negative.<BR>\n"; } ?> <?$a = 1;if ($a==1) { echo "a=1 OK"; }?> Out Put a=1
เงื่อนไขสายงานเพื่อการตัดสินใจ (ต่อ) • 2.if..elseif..else <?$a = 4;if ($a==1){ echo " a = 1 OK ";} elseif ($a==2){ echo " a = 2 OK";} elseif ($a==3){ echo " a = 3 OK ";}else{ echo " a Not OK ";}?> Out Put a Not OK sample12.php
เงื่อนไขสายงานเพื่อการตัดสินใจ (ต่อ) • 3.switch case <?$a = 3;switch ($a){case 1 : echo "a = 1 OK"; break;case 2 : echo "a = 2 OK"; break;case 3 : echo "a = 3 OK"; break;case 4 : echo "a = 4 OK"; break;default : echo " a Not OK"; } ?> sample13.php out Put a = 3 OK
เงื่อนไขสายงานเพื่อการตัดสินใจ (ต่อ) • 3.break คำสั่ง break และ continue ภายในลูปอย่างที่ใช้กันในภาษาซี ก็นำมาใช้กับภาษา PHP ได้ • 4.continue เป็นคำสั่งกระโดการทำงานรอบใหม่ คือ เมื่อโปรแกรมเจอคำสั่งนี้จะกระโดดทำงานใหม่ทันที
เงื่อนไขสายงานเพื่อการตัดสินใจ (ต่อ) <? for($i=1; $i <=10; $i++) { if($i==5) { continue; } if($i==9) { break; } } echo $i; ?> sample14.php
เงื่อนไขสายงานเพื่อการตัดสินใจ (ต่อ) • 5. includeคำสั่ง include เอาไว้แทรกเนื้อหาจากไฟล์อื่นที่ต้องการโดยสามารถแทรกไว้ที่ใดในไฟล์หลักก็ได้ sample15.php file1.php <? include("file1.php"); include("file2.inc"); ?> Hello world 1<BR> file2.inc Hello world 2<BR>
เงื่อนไขสายงานเพื่อการตัดสินใจ (ต่อ) • 6.redirectเป็นการย้ายการทำงานของ Page ปัจจุบันเพื่อไปไฟล์เป้าหมายheader('Location:file.php'); header('Location: http://www.example.com/'); • 7.or เงื่อนไข ORข้อกำหนดเงื่อนไขเหตุการณ์เป็นจริงเหตุการณ์ใดเหตุการณ์หนึ่ง ก็คือพบข้อมูลตัวแปรตัวใดตัวหนึ่ง โปรแกรมจึงจะทำงาน if (($name == "") ||($named == "")){
เงื่อนไขสายงานเพื่อการตัดสินใจ (ต่อ) • 9.and ข้อกำหนดเงื่อนไขเหตุการณ์จะต้องเป็นจริงทั้งสองเหตุการณ์ ก็คือพบข้อมูลตัวแปรทั้งสอง โปรแกรมจึงจะทำงาน if (($name == "") &&($named == "")){
ลูปและการทำซ้ำ • for จะทำงานจนเงื่อนไขนั้นเป็นเท็จ ถึงจะกระโดดออกจากลูป sample16.php <?for ($a=1;$a<=5;$a++){ echo "<font size=$a> ข้อความใหญ่ขึ้น และจะหยุดทำงานเมื่อ a=5 <br> ";}?>
ลูปและการทำซ้ำ(ต่อ) • while จะพิจารณาเงื่อนไขแล้วค่อยทำ ถ้าเงื่อนไขเป็นจริงจะทำ ถ้าเท็จ จะกระโดดออกจากลูปทันที sample17.php <?$a=1;while ($a<=5){echo"<font size=$a> ข้อความใหญ่ขึ้นและจะหยุดทำงานเมื่อa=5 <br> ";$a++;}?>
ลูปและการทำซ้ำ(ต่อ) • do..while ทำก่อนแล้วค่อยพิจารณาเงื่อนไข ถ้าเงื่อนไขเป็นเท็จ จะกระโดดออกจากลูปทันที sample18.php <?$a=1;do{ echo "<font size=$a> ข้อความใหญ่ขึ้น และจะหยุดทำงานเมื่อ a=5 <br> ";$a++;}while($a<=5)?> ** ถ้าใช้ do-while จะต้องมีการทำคำสั่ง ภายในลูปหนึ่งครั้งเสมอ แม้ว่าเงื่อนไขโดยเริ่มต้นจะเป็นเท็จก็ตาม ซึ่งแตกต่างจาก while-do ถ้าเงื่อนไขเป็นเท็จตั้งแต่เริ่ม ก็จะไม่มีการทำคำสั่งที่อยู่ในลูป อีกแบบหนึ่งสำหรับการวนลูปคือใช้ for-loop ทำได้ตามตัวอย่างต่อไปนี้
แบบฝึกหัด เขียนโปรแกรมเพื่อแสดงตารางรายชื่อจาก array array ชื่อ member เก็บข้อมูลชื่อ-นามสกุล จำนวน 10 คน จากนั้นแสดงให้ได้ผลลัพธ์ดังภาพด้านล่าง ใช้ LOOP แล้วดึงข้อมูลใน Array มาแสดง...พร้อมสลับสีแถวด้วย โดยแถวที่ 5 แถวเดียวต้องเป็นสีที่ ไม่เหมือนสองสีแรก