600 likes | 798 Views
PHP. อ.ปริญญา น้อยดอนไพร สาขาวิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยราชภัฏสุราษฎร์ธานี. ประวัติความเป็นมาของ PHP.
E N D
PHP อ.ปริญญา น้อยดอนไพร สาขาวิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยราชภัฏสุราษฎร์ธานี
ประวัติความเป็นมาของ PHP • ผู้ให้กำเนิด PHP มีชื่อว่า RasmusLerdorf โดยเริ่มต้นเขียนสคริปต์ Perl CGI ใส่ไว้ในโฮมเพจประวัติส่วนตัว และเห็นว่าการเขียน CGI ด้วย Perl มีความยุ่งยาก จึงได้เขียนโปรแกรมขึ้นใหม่ด้วยภาษา C ที่สามารถแยกส่วนที่เป็นภาษา HTML ออกจากส่วนที่เป็นภาษา C เพื่อแยกประมวลผล แล้วทำการสร้างโค้ด HTML ขึ้นใหม่ โดยตั้งชื่อโปรแกรมนี้ว่า Personal Home Page Tools (PHP-Tools) และได้เริ่มแจกจ่ายโค้ดออกไปในลักษณะฟรีแวร์ ต่อมาจึงได้เริ่มเปิดให้ผู้สนใจเข้าร่วมปรับปรุงและพัฒนา จนพัฒนาเป็น PHP/FI ปัจจุบัน PHP ย่อมาจาก PHP: Hypertext Preprocessor
ประวัติความเป็นมาของ PHP (ต่อ) • จนกระทั่ง Zeev Suraski และ Andi Gutmans ได้ร่วมกันเขียนโค้ดขึ้นใหม่โดยได้มีการปรับปรุงให้ดีขึ้นเป็นอย่างมากในหลายๆ ด้าน เช่น เพิ่มประสิทธิภาพในการประมวลผล การสนับสนุนการโปรแกรมเชิงวัตถุ และในด้านอื่นๆ อีกหลายประการจนเกิดเป็น PHP3 ซึ่งเป็นเวอร์ชั่นที่ได้รับความนิยมเป็นอย่างมาก • เมื่อมีผู้ใช้เป็นจำนวนมาก จึงมีการนำไปใช้ในงานที่ซับซ้อนขึ้น ด้วยเหตุนี้ Zeev Suraski และ Andi Gutmans ผู้พัฒนา PHP3 จึงตัดสินใจเขียนโค้ดขึ้นใหม่ทั้งหมด และได้ตั้งชื่อว่า Zend engine (มาจากชื่อ Zeev และ Andi) ซึ่งเป็นหัวใจของ PHP4
ประวัติความเป็นมาของ PHP (ต่อ) • PHP5 (กรกฎาคม พ.ศ.2547) เป็นเวอร์ชั่นที่จัดได้ว่าเป็นการพลิกโฉมการโปรแกรมเชิงวัตถุด้วย PHP เนื่องจากมีการเปลี่ยนแปลงไปสู่การโปรแกรมเชิงวัตถุ (OOP) ที่สมบูรณ์แบบมากยิ่งขึ้น • PHP6 กำลังอยู่ในขั้นพัฒนาและปรับปรุงขณะนี้ยังเป็น Beta Version ยังคงใช้ Zend engine เป็นแกนหลัก การเปลี่ยนแปลงที่สำคัญ คือ1. ไม่มีคุณสมบัติ register_global, magic_quote_gpc และ safe_mode 2. ยกเลิกตัวแปร HTTP_*_VARS ทั้งหมด เช่น HTTP_POST_VARS และ HTTP_COOKIE_VARS เป็นต้น3. สนับสนุนการทำงานกับสตริงแบบ Unicode4. เพิ่มชนิดข้อมูลเลขจำนวนเต็มขนาด 64 บิต
ประวัติความเป็นมาของ PHP (ต่อ) • PHP เป็นภาษาสคริปต์แบบเซิร์ฟเวอร์ไซด์ (Server-side scripting language) หมายถึง การประมวลผลจะเกิดขึ้นบนเครื่องแม่ข่าย (Server) แล้วสร้างผลลัพธ์เป็นภาษา HTML ส่งให้กับเครื่องลูกข่าย (Client)เพื่อแสดงผล ซึ่งลดภาระการส่งถ่ายข้อมูลจำนวนมากเพื่อมาประมวลผลบนเครื่องลูกข่าย • การเขียนสามารถทำได้โดยการเขียนโค้ด PHP แทรกลงในโค้ด HTML ด้วยการเปิดแท็ก <?php และปิดด้วยแท็ก ?> (ในกรณีที่ไม่มีการใช้ร่วมกับสคริปต์ XML สามารถเปิด้วย <? ได้) • การบันทึกจะต้องกำหนดเป็นนามสกุล .php หรือ .phtml
ต้องการใช้ PHP ต้องมีอะไรบ้าง • เครื่องแม่ข่าย (หากไม่มีจะต้องจำลองเครื่องแม่ข่าย :: เช่น โปรแกรมเว็บเซิร์ฟเวอร์ Apache หรือชุดสำเร็จ อย่างเช่น Appserv ประกอบไปด้วย Apache, PHP, MySQL และ PHPMyAdmin เป็นต้น) สามารถดาวน์โหลดได้ที่ www.freebsd.sru.ac.th/web • เครื่องลูกข่าย ต้องมีเว็บบราวเซอร์ (Web Browser) เช่น IE หรือ FireFox เป็นต้น
สิ่งที่ PHP สามารถทำได้ • CGI • Database-enable web page • Database Adabas D InterBase Solid DBase mSQL Sybase Empress MySQLVelocis FilePro Oracle Unix dbm Informix PostgreSQL
ทำไม PHP จึงเป็นที่นิยม • Open source • No cost implementation – PHP เป็นของฟรี • Server side • Crossable Platform • HTML embedded • Simple language • Efficiency • XML parsing • Database module • File I/O • Text processing • Image processing
การทำงานของ PHP • ทำงานบน Server • ทำงานร่วมกับเอกสาร HTML • สามารถแทรกคำสั่ง PHP ได้ตามที่ต้องการลงในเอกสาร HTML • ทำงานในส่วนที่เป็นคำสั่งของ PHP ก่อน เมื่อมีการเรียกใช้เอกสารนั้น ๆ • แสดงผลออกทาง Web Browsers
โครงสร้างภาษา PHP • แบบที่ 1 XML style <?phpคำสั่งภาษา PHP ?> ตัวอย่าง <?php echo “Hello World ! <br>”; echo “I am PHP”; ?>
โครงสร้างภาษา PHP (ต่อ) • แบบที่ 2 SGML style <?คำสั่งภาษา PHP ?> ตัวอย่าง <? echo “Hello World ! <br>”; echo “I am PHP”; ?>
โครงสร้างภาษา PHP (ต่อ) • แบบที่ 3 Java Language style <script language=“php”> คำสั่งภาษา PHP </script> ตัวอย่าง <script language=“php”> echo “Hello World”; </script>
โครงสร้างภาษา PHP (ต่อ) • แบบที่ 4 ASP Style <%คำสั่งภาษา PHP %> ตัวอย่าง <% echo “Hello World ! <br>”; echo “I am PHP”; %>
โครงสร้างภาษา PHP (ต่อ) • แบบที่เป็นที่นิยม คือ แบบที่ 1 • ผลที่ได้เมื่อผ่านการทำงานแล้วจะได้ผลดังนี้ Hello World ! I am PHP • ข้อสังเกต - รูปแบบคล้ายกับภาษา C และ Perl - ใช้เครื่องหมาย ( ; ) คั่นระหว่างคำสั่งแต่ละคำสั่ง • File ที่ได้ต้อง save เป็นนามสกุล php
Language Reference • Comments - เหมือนกับการ Comment ของภาษา C, C++ และ Unix • ตัวอย่าง <?php echo “Hello !”; // การ comment แบบ 1 บรรทัด /* แบบหลายบรรทัดตั้งแต่ 2 บรรทัดขึ้นไป */ echo “World”; # การ comment แบบ shell-style ?>
คำสั่ง echo • เป็นคำสั่งสำหรับแสดงผลลัพธ์ไปที่โปรแกรม browser • รูปแบบ echo ข้อความ1 หรือตัวแปร1, ข้อความ2 หรือตัวแปร2, ข้อความ3 หรือตัวแปร3, … • ข้อความ เขียนภายใต้เครื่องหมาย double quote (“ “) หรือ single quote (‘ ‘) • ตัวแปรของภาษา PHP จะขึ้นต้นด้วยเครื่องหมาย $ เสมอ คล้ายกับภาษา Perl
ตัวอย่างที่ 1 intro.php <HTML> <HEAD> <TITLE>Example –1</TITLE> </HEAD> <BODY> <?php phpinfo() ; ?> <BODY> </HTML>
การเรียกใช้งาน • เปิดโปรแกรม Web Browser • พิมพ์ URL Address • http://localhost/intro.php หรือ http://127.0.0.1/intro.php
ตัวอย่างที่ 2(date.php) <HTML> <HEAD> <TITLE> Example –2</TITLE> </HEAD> <BODY> วันนี้ตรงกับวันที่ : <?phpecho date(“j F Y”); ?> ขณะนี้เวลา : <?php echo date(“H : i : s”);?> </BODY> </HTML>
ตัวแปร ชนิดข้อมูล และค่าคงที่
การใช้ตัวแปรในภาษา PHP • สำหรับการเขียนโปรแกรมสำหรับภาษาคอมพิวเตอร์ระดับสูง สิ่งที่จะขาดเสียมิได้คือ การกำหนดและใช้ตัวแปร (variable) ตัวแปรในภาษา PHP จะเหมือนกับในภาษา Perl คือเริ่มต้นด้วยเครื่องหมาย dollar ($) โดยเราไม่จำเป็นต้องกำหนดแบบของข้อมูล (data type) อย่างเจาะจงเหมือนในภาษาซี เพราะว่า ตัวแปลภาษาจะจำแนกเองโดยอัตโนมัติว่า ตัวแปรดังกล่าว ใช้ข้อมูลแบบใด ในช่วงเวลานั้นๆ เช่น ข้อความ จำนวนเต็ม จำนวนที่มีเลขจุดทศนิยมตรรก เป็นต้น ตัวอย่างการใช้งาน เช่น <?php $text = “Hello World”; $number = 123; ?>
<?php $text = “Hello World”; $number = 123; echo $text.“<br>”; echo $number .“<br>”; echo “ค่าตัวอักษรในตัวแปร \$text คือ $text <br>”; echo “ค่าตัวเลขในตัวแปร \$number คือ $number” ?> • เมื่อต้องการแสดงค่าของตัวแปร สามารถใช้คำสั่ง echo ได้ ตัวอย่างเช่น • หมายเหตุ ในภาษา PHP ไม่ต้องประกาศตัวแปรก่อนใช้งาน สามารถกำหนดค่าให้กับตัวแปรได้เลยเมื่อต้องการใช้งาน
คำสั่งใส่รูปภาพลงเว็บเพจคำสั่งใส่รูปภาพลงเว็บเพจ • เราสามารถใช้คำสั่งแสดงรูปภาพที่เราต้องให้ปรากฏบนเว็บเพจเราได้ด้วยการใช้คำสั่ง <IMG SRC=\"ชื่อไฟล์.gif หรือ.jpg\"> โดยจะต้องมีการใช้ \ ด้วย เช่น <?php echo “<center><imgsrc=\“folder/b.gif\” height=150 width=150></center>”; ?>
โดยมีคำสั่งในเพิ่มเติมในการแสดงภาพ ดังนี้ • การกำหนดขนาดรูปภาพ ให้ตรงกับความต้องการ WIDTH หมายถึง ความกว้างของรูปภาพ และHEIGHT หมายถึง ความสูงของรูปภาพ <IMG SRC= \“b.gif\” WIDTH=number% | HEIGHT=number%> • การกำหนดกรอบให้กับรูปภาพ <BORDER=n> • การวางตำแหน่งรูปภาพ • แบบแนวนอน ประกอบด้วย LEFT | RIGHT • แบบแนวตั้ง ประกอบด้วย เสมอบน มี 2 คำสั่ง คือ TOP | TEXTTOP • กึ่งกลาง มี 2 คำสั่ง คือ MIDDLE | ABSMIDDLE เสมอล่าง มี 3 คำสั่ง คือ • BASELINE | BOTTOM | ABSBOTTOM
การตั้งชื่อตัวแปร • ชื่อตัวแปรจะต้องประกอบด้วยตัวอักษร ตัวเลข หรือเครื่องหมายขีดล่าง (Underscore)เท่านั้น ห้ามตั้งชื่อตัวแปรด้วยตัวเลขเป็นตัวขึ้นต้น เช่น $name , $parinya_mrเป็นต้น • ไม่ควรตั้งชื่อสั้นๆ เช่น $a, $b, $x เป็นต้น เพราะเมื่อนานๆ ไปจะจำไม่ได้ว่าตัวแปรเหล่านั้นใช้ทำอะไร • ภาษา PHP ถือว่าตัวอักษรพิมพ์เล็กและพิมพ์ใหญ่แตกต่างกัน (Case Sensitive)เช่น $text หรือ $Text หรือ $TEXT เป็นคนละตัวแปรกัน
ชนิดของข้อมูล (Data Type) ขั้นพื้นฐานในภาษา PHP ประกอบด้วย 1. ตรรกศาสตร์ (Boolean) 2. เลขจำนวนเต็ม (Integer) 3. เลขจำนวนทศนิยม (Float หรือ Double) 4. ข้อความ (String)
การประกาศค่าคงที่ (Constant) • constant.php <?php define(“HELLO”, “สวัสดีครับ”); define (“VAT”, 7); $name = “Mr.Parinya”; echo HELLO.“คุณ $name<br>”; echo “ภาษามูลค่าเพิ่มขณะนี้คิดในอัตราร้อยละ”.VAT; ?> หมายเหตุ การตั้งชื่อค่าคงที่ นิยมใช้ตัวอักษรพิมพ์ใหญ่ทั้งหมด เพื่อให้สังเกตได้ง่าย ค่าคงที่ คือ ชื่อตัวแปรที่ถูกกำหนดขึ้นมา คล้ายๆกับตัวแปร แต่แก้ไขค่าไม่ได้
การตรวจสอบชนิดข้อมูลของตัวแปรการตรวจสอบชนิดข้อมูลของตัวแปร • gettype.php<?php $number_int = -65535; //สร้างตัวแปร $number_intเก็บเลขจำนวนเต็ม$number_double = 3.44; //สร้างตัวแปร $number_doubleเก็บเลขทศนิยม $text = “PHP : Hypertext Preprocessor”; $test_boolean = FALSE; echo gettype($number_int).“<br>”; echo gettype($number_double).“<br>”; echo gettype($text).“<br>”; echo gettype($test_boolean).“<br>”; ?>
ตัวดำเนินการ หรือ Operator • ในภาษา PHP มี Operator ต่างๆ ให้ใช้ ไม่ว่าจะเป็นโอเปอเรเตอร์ทางคณิตศาสตร์ โอเปอเรเตอร์เชิงตรรกะ เช่นเดียวดับภาษาอื่นดังนี้
การใช้เงื่อนไข(condition) เพื่อการตัดสินใจ • การใช้ IF...ELSE Conditionเป็นการกำหนดเงื่อนไขที่ธรรมดาที่สุด คือกำหนดเงื่อนไข แล้วโปรแกรมตรวจสอบเงื่อนไขนั้น ถ้าเงื่อนไขนั้นเป็นจริงก็จะทำตามคำสั่งที่กำหนด ถ้าเป็นเท็จก็จะไม่ทำ • ผลที่ได้ : Summation = 10
การใช้ Switch…Caseในบางครั้งในการกำหนดทางเลือกของโปรแกรมโดยการใช้ If…Else อาจจะทำให้เขียนโปรแกรมยาวและทำความเข้าใจยาก ดังนั้นเราอาจใช้ Switch แทนซึ่งเขียนโปรแกรมง่ายกว่าและมีความกระชับมากกว่า • ผลที่ได้ : i equals 2
การวนลูป • การใช้ While Loopคำสั่ง while จะทำงานโดยการตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะทำตามคำสั่ง • ผลที่ได้ : 12345
Do whileเป็นคำสั่งที่คล้ายกับ While Loop แต่ต่างกันที่ Do while นั้นจะทำงานโดยการตรวจสอบเงื่อนไขภายหลังจากการทำงานไปแล้วแต่ While นั้นจะตรวจสอบเงื่อนไขก่อนการทำงาน • ผลที่ได้ : 5 • กรณีที่ใช้ While...Loop จะทำการตรวจสอบเงื่อนไขก่อน แล้วจึงค่อยทำในลูป • กรณีที่ใช้ Do...Loop จะทำคำสั่งในลูปก่อน แล้วจึงค่อยตรวจสอบเงื่อนไข
For Loopคำสั่งนี้จะทำหน้าที่สั่งให้โปรแกรมทำงานวนรอบตามต้องการ ซึ่งกำหนดเป็นเงื่อนไข โดยจะทำเมื่อเงื่อนไขเป็นจริง และจะมีลักษณะการวนรอบที่รู้จำนวนรอบที่แน่นอน • ผลที่ได้ : 12345
Foreachเป็นการทำงานในลักษณะวนรอบที่ทำงานกับตัวแปรอาร์เรย์ โดยสามารถเข้าถึงข้อมูลทั่วไป โดย $Value เป็นตัวกำหนดค่าให้กับ array expression โดยพอยน์เตอร์จะเลื่อนไปตามสมาชิดถัดไปของอาร์เรย์ตามการเปลี่ยนแปลงรอบที่เปลี่ยนไป
การใช้ break และ continue ภายในลูป • คำสั่ง break เป็นคำสั่งจะใช้เพื่อให้หยุดการทำงาน จากการใช้คำสั่งเพื่อวนรอบที่ผ่านมาจะเห็นว่าจะออกจากการวนรอบเมื่อสิ้นสุดการทำงานแล้วเท่านั้น แต่ถ้าต้องการให้หยุดทำงานกะทันหัน สามารถใช้คำสั่ง break ก็ได้ • คำสั่ง continue เป็นคำสั่งที่ทำงานตรงข้ามกับคำสั่ง break คือ จะสั่งให้โปรแกรมทำงานต่อไป ถ้าใช้คำสั่ง Continue กับ For เมื่อพบคำสั่งนี้จะเป็นการสั่งให้กลับไปเพิ่มค่าให้กับตัวแปรทันที หรือถ้าใช้กับคำสั่ง While เมื่อพบคำสั่งนี้จะเป็นการสั่งให้กลับไปทดสอบเงื่อนไขใหม่ทันที
ผลที่ได้ :Blue • คำสั่ง continue บังคับให้ไปเริ่มต้นทำขั้นตอนในการวนลูปครั้งต่อไป ส่วน break นั้นส่งผลให้หยุดการทำงานของลูป
การใช้คำสั่ง include และ require • คำสั่งทั้งสองเอาไว้แทรกเนื้อหาจากไฟล์อื่นที่ต้องการ ข้อแตกต่างระหว่าง include และ require อยู่ตรงที่ว่า ในกรณีของการแทรกไฟล์ใช้ชื่อต่างๆ กันมากกว่าหนึ่งครั้งโดยใช้ลูปคำสั่ง require จะอ่านเพียงแค่ครั้งเดียว คือไฟล์แรก และจะแทรกไฟล์นี้เท่านั้นไปตามจำนวนครั้งที่วนลูป ในขณะที่ include สามารถอ่านได้ไฟล์ต่างๆ กันตามจำนวนครั้งที่ต้องการ
การใช้งาน MySQL • การสร้างฐานข้อมูล • ในการสร้างฐานข้อมูลของ MySQL สามารถสร้างผ่าน phpMyAdmin ได้เลย โดยการเลือก Internet Explorer ขึ้นมาพิมพ์ 127.0.0.1 ที่ address bar จะได้หน้าต่างดังนี้
ชนิดของข้อมูลใน MySQL • ชนิดของข้อมูลพื้นฐาน มี 3 ชนิด คือ ตัวเลข, วันที่เวลา และตัวอักษร แต่ละชนิดจะมีขนาดไม่เท่ากัน ดังนั้น เมื่อกำหนดคอลัมน์หรือฟิลด์ข้อมูลในตารางบนฐานข้อมูล จะต้องคำนึงถึงชนิดของข้อมูลด้วย เพื่อความเหมาะสมของข้อมูล โดยข้อมูลแต่ละชนิดมีรายละเอียดดังนี้ • ชนิดตัวเลข แบ่งได้เป็น เลขจำนวนเต็มและเลขจำนวนจริง • ตารางแสดงชนิดของตัวเลขจำนวนเต็ม
ตารางแสดงชนิดของเลขจำนวนจริงตารางแสดงชนิดของเลขจำนวนจริง • ชนิดวันที่และวันเวลา • ตารางแสดงชนิดวันที่และเวลา
ชนิดตัวอักษร • ตารางแสดงชนิดของสตริง
ฟังก์ชันในการจัดการฐานข้อมูลใน MySQL • การเชื่อมต่อกับฐานข้อมูล • ในการติดต่อกับฐานข้อมูลจะต้องทำหารเปิดการติดต่อดาต้าเบสเซิร์ฟเวอร์ก่อน โดยมีรูปแบบการใช้งานดังนี้ • mysql_connect(hostname, username, password); • hostname คือ ชื่อของดาต้าเบสเซิร์ฟเวอร์ ในการที่ติดตั้ง MySQL ไว้ในเครื่องเดียวกับเว็บเซิร์เวอร์ ก็สามารถระบุเป็น localhost แทนชื่อจริงได้เลย • username คือ ชื่อผู้ใช้ที่ถูกกำหนดให้สามารถทำงานกับ MySQL ได้ • password คือ รหัสผ่านของผู้ใช้ หรือจะระบุหรือไม่ก็ได้
ค่าที่คืนออกมาจากการเรียกใช้ฟังก์ชันนี้จะได้ค่าเป็นจริงหากสามารถติดต่อกับ MySQL ได้สำเร็จแต่ถ้าไม่สามารถติดต่อได้หรือติดต่อไม่สำเร็จจะมีค่าเป็นเท็จ เช่น
การยกเลิกการเชื่อมต่อการยกเลิกการเชื่อมต่อ • ฟังก์ชันที่ใช้ในการยกเลิกหรือปิดการติดต่อดาต้าเบสเซิร์ฟเวอร์ • mysql_close(database_connect); • โดยผลลัพธ์ที่คืนออกมาจากฟังก์ชันนี้ ถ้าปิดการติดต่อกับ MySQL ได้สำเร็จก็จะมีค่าเป็นจริง ถ้าไม่สำเร็จจะมีค่าเป็นเท็จ เช่น
การเรียกใช้ฐานข้อมูลผ่านเว็บการเรียกใช้ฐานข้อมูลผ่านเว็บ • ก่อนการเรียกใช้ฟังก์ชันนี้ จะต้องมีการเรียกใช้ฟังก์ชัน mysql_connectเพื่อกำหนดฐานข้อมูลที่จะเชื่อมต่อเสียก่อน • mysql_select_db(string databasename); • Databasename คือ ชื่อของฐานข้อมูล เช่น
การนำภาษา SQL มาใช้ในฐานข้อมูล MySQL • ฟังก์ชัน mysql_query() • เป็นฟังก์ชันสำหรับสั่งงาน MySQL ด้วยภาษา SQL เพื่อจัดการกับข้อมูลในฐานข้อมูล เช่น การเพิ่ม การลบ เป็นต้น ต้องใช้กับฟังก์ชัน mysql_select_db() • mysql_query(string query, [database_connect]); • query หมายถึง คิวรีที่เรียกใช้ฐานข้อมูล • database_connect หมายถึง ตัวแปรที่ใช้เชื่อมต่อกับฐานข้อมูล จะกำหนดหรือไม่ก็ได้ เช่น
ฟังก์ชัน mysql_db_query() • เป็นฟังก์ชันสำหรับสั่งงาน MySQL ด้วยภาษา SQL เพื่อจัดการกับข้อมูลในฐานข้อมูลเหมือนกับฟังก์ชัน mysql_query แต่ไม่ต้องใช้ร่วมกับฟังก์ชัน mysql_select_db()เพราะสามารถกำหนดชื่อฐานข้อมูลไว้ในฟังก์ชันได้เลย • mysql_db_query(string databasename, string query); • เช่น