ภาษา PHP (Hypertext Preprocessor) อาจารย์สุธารัตน์ ชาวนาฟาง สาขาวิศวกรรมซอฟต์แวร์ มหาวิทยาลัยราชภัฏนครปฐม เอกสารนี้เป็นส่วนหนึ่งของรายวิชา Webpage Design and Programming Workshop
ภาษา PHP ย่อมาจาก Hypertext Preprocessor สามารถเขียนแทรกอยู่ภายในภาษา HTML ความสามารถของ PHP คือ database-enabled web page ทำให้เอกสารของภาษา HTML สามารถที่จะเชื่อมต่อกับระบบฐานข้อมูล (database) ดังนั้นภาษา PHP เป็นภาษาที่เรียกว่า server-side หรือ HTML-embedded scripting language เป็นเครื่องมือที่สำคัญชนิดหนึ่งที่ช่วยให้สามารถสร้างเอกสารแบบ Dynamic HTML ได้อย่างมีประสิทธิภาพและมีลูกเล่นมากขึ้น Webpage Design and Programming Workshop
การทำงานของภาษา PHP PHP เป็นภาษาที่มีการประมวลผลทางเครื่องผู้ให้บริการ (Server) โดยเป็นเครื่องมือที่ทำให้สามารถสร้างไฟล์เอกสารประเภท HTML ที่มีการเคลื่อนไหวเปลี่ยนแปลงได้หรือที่เรียกว่าพลวัต (Dynamic HTML) การที่เครื่องบริการมีการประมวลผลก่อนส่งข้อมูลมายังเครื่องผู้ใช้ เรียกว่า Server Side Include (SSI) ซึ่งจะทำงานในฝั่ง server แล้วส่งการแสดงผลมายัง browser ของตัว Client และนอกจากนี้ยังเป็น script ที่ embed บน HTML อีกด้วย และการทำงานในลักษณะนี้ทำให้ความเร็วในการทำงานสูงขึ้นอีกด้วย Webpage Design and Programming Workshop
การทำงานของภาษา PHP Webpage Design and Programming Workshop
ความสามารถของ PHP เป็นภาษาที่มีลักษณะเป็นแบบ Open source เป็นสคริปต์แบบ Server Side Script ทำงานบนเว็บเซิร์ฟเวอร์ และส่งผลลัพธ์ที่ได้จากการประมวลผลมาที่เครื่องของผู้ใช้ในรูปแบบของ HTML สามารถทำงานได้ใน OS ที่ต่างชนิดกัน สามารถทำงานได้ใน Web Server หลายชนิด เช่น Personal Web Server (PWS), Apache, OmniHttpd และ IIS เป็นต้น Webpage Design and Programming Workshop
ความสามารถของ PHP สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) สามารถในการทำงานร่วมกับระบบจัดการฐานข้อมูลที่หลากหลาย เช่น Oracle, MySQL, FilePro, Solid, FrontBase, mySQL และ MS SQL เป็นต้น อนุญาตให้ผู้ใช้สร้างเว็บไซต์ซึ่งทำงานผ่านโปรโตคอลชนิดต่างๆ ได้ เช่น LDAP, IMAP, SNMP, POP3 และ HTTP เป็นต้น สามารถเขียน และอ่านในรูปแบบของ XML ได้ Webpage Design and Programming Workshop
รูปแบบของคำสั่ง แบบ PHP tags เรียกว่า 1 short style 2 <?php .….…. คำสั่งภาษา PHP ….... ?> XML style 3 <script language="php">..…. คำสั่ง…...</script> JavaScript style 4 <% ..…. คำสั่งภาษา PHP …... %> ASP style Webpage Design and Programming Workshop
รูปแบบของคำสั่ง <html> <head> <title> My Homepage </title></head> <body> <h1> <?php echo "Hello World!"; ?> </h1> </body> </html> Webpage Design and Programming Workshop
รูปแบบของคำสั่ง <HTML> <HEAD><TITLE> ฝึกการเขียนภาษา PHP </TITLE></HEAD> <BODY> <H1> <? echo "นี่คือการแสดงผลข้อความในภาษา PHP <br></n>"; echo ("อีกรูปแบบหนึ่งของการแสดงผลข้อความในภาษา PHP "); //echo เป็นคำสั่งให้แสดงโปรแกรมแสดงผลทาง Browser // เครื่องหมาย "//" เรียกว่า comment /* หรืออีกรูปแบบหนึ่งของ comment เครื่องหมาย </n> ทำให้ภาษา PHP เป็นการขึ้นบรรทัด ใหม่ เครื่องหมาย <br> จะเป็นคำสั่งให้การแปลผลของ Browser ขึ้นบรรทัดใหม่ */ ?> </H1> </BODY> </HTML> Webpage Design and Programming Workshop
คำสั่งแสดงผล 1. คำสั่ง echo คำสั่งการแสดงผลออกทาง Browser มี 3 ตัวคือ echo, print และ printf ดังนี้ 1. คำสั่ง echo สามารถแยกข้อความเป็นหลายช่วงในเครื่องหมาย “……...” โดยแต่ละช่วงสามารถใช้เครื่องหมายจุลภาค (,) คั่น แบบที่ 1 echo "ข้อความที่ต้องการแสดง" ; แบบที่ 2 echo ("ข้อความที่ต้องการแสดง") ; <? echo "Hello<br>"; echo ("sunday"); ?> Webpage Design and Programming Workshop
คำสั่งแสดงผล 2. คำสั่ง print ใช้ในการสร้างข้อความให้กับ Text File หากต้องการสร้าง Text File ด้วย Code ภาษา PHP ต้องใช้ print() ส่วนการแสดงผลออกทางหน้าเว็บจะใช้ echo() หรือ print() ก็ได้ไม่แตกต่างอะไร แบบที่ 1 print"ข้อความที่ต้องการแสดง"; แบบที่ 2 print("ข้อความที่ต้องการแสดง"); <?php print"Hello<br>" ; print("sunday") ; ?> Webpage Design and Programming Workshop
คำสั่งแสดงผล 3. คำสั่ง printf เป็นคำสั่งที่ใช้ในการแสดงผลออกทางหน้าเว็บ สร้างข้อความให้กับ Text file ไม่ว่าจะเป็นจำนวนเต็ม (int) , ทศนิยม (float) , ข้อความ (string) หรืออักขระ นอกจากนี้คำสั่งยังมีความยืดหยุ่นสูง โดยสามารถกำหนดหรือจัดรูปแบบการแสดงผลให้มีระเบียบหรือเหมาะสมตามความต้องการได้อีกด้วย Webpage Design and Programming Workshop
printf($format,$value); คำสั่งแสดงผล 3. คำสั่ง printf printf($format,$value); $format คือรูปแบบหรือรหัสแทนข้อมูล ดังนี้ %d = เลขฐานสิบ %o = เลขฐานแปด %b = เลขฐานสอง %c = รหัส ASCII %s = ข้อความ %x,%X = เลขฐานสิบหก %f = ทศนิยม $value คือตัวแปร/นิพจน์ที่ต้องการแสดงข้อมูล <?php printf("100*2=%d",100*2); echo "<br>"; printf("100*2=%.2f",100*2); printf("100*2=%c",100*2); printf("%s","Sutarat Chaonafang"); ?> Webpage Design and Programming Workshop
ฟังก์ชันที่ใช้ในการตรวจสอบเงื่อนไข 1. คำสั่งตรวจสอบเงื่อนไขแบบทางเลือกเดียว (คำสั่ง if ) คำสั่งตรวจสอบเงื่อนไขแบบทางเลือกเดียว จะทำคำสั่งก็ต่อเมื่อเงื่อนไขเป็นจริง if (เงื่อนไข) { กิจกรรมหรือคำสั่ง เมื่อเงื่อนไขข้างต้นเป็นจริง } $A = 2; if ( $A == 2 ) { echo "ตัวแปรชื่อ A มีค่าเท่ากับ 2"; } Webpage Design and Programming Workshop
ฟังก์ชันที่ใช้ในการตรวจสอบเงื่อนไข 2. คำสั่งตรวจสอบเงื่อนไขแบบสองทางเลือก (คำสั่ง if...else) คำสั่งตรวจสอบเงื่อนไขแบบทางเลือกเดียว จะทำคำสั่งก็ต่อเมื่อ เงื่อนไขเป็นจริง และจะทำคำสั่งหลัง else ก็ต่อเมื่อเงื่อนไขเป็นเท็จ if (เงื่อนไข) { คำสั่งเมื่อเงื่อนไขข้างต้นเป็นจริง } else คำสั่งเมื่อเงื่อนไขข้างต้นเป็นเท็จ $A = 2; if ($A == 2) { echo "ตัวแปรชื่อ A มีค่าเท่ากับ 2"; } else echo "ตัวแปรชื่อ A มีค่าไม่เท่ากับ 2"; Webpage Design and Programming Workshop
ฟังก์ชันที่ใช้ในการตรวจสอบเงื่อนไข 3. คำสั่งตรวจสอบเงื่อนไขแบบสองทางเลือก (คำสั่ง if...else if ... ) คำสั่งตรวจสอบเงื่อนไขแบบทางเลือกเดียว จะทำคำสั่งก็ต่อเมื่อ เงื่อนไขเป็นจริง และจะทำคำสั่งหลัง else ก็ต่อเมื่อเงื่อนไขเป็นเท็จ Webpage Design and Programming Workshop
ฟังก์ชันที่ใช้ในการตรวจสอบเงื่อนไข if (เงื่อนไขที่ 1) { คำสั่ง เมื่อเงื่อนไขที่ 1 เป็นจริง } elseif (เงื่อนไขที่ 2) คำสั่ง เมื่อเงื่อนไขที่ 2 เป็นจริง else คำสั่ง เมื่อเงื่อนไขที่ 1 และ 2 เป็นเท็จ $A = 2; if ( $A == 2 ) { echo "ตัวแปรชื่อ A มีค่าเท่ากับ 2"; } elseif ($A==1) echo "ตัวแปรชื่อ A มีค่าเท่ากับ 1"; else echo"ตัวแปรชื่อ A มีค่าไม่เท่ากับ 1 และ 2"; Webpage Design and Programming Workshop
ฟังก์ชันที่ใช้ในการตรวจสอบเงื่อนไข 4. การตรวจสอบเงื่อนไขโดยใช้ switch เป็นคำสั่งที่ใช้สำหรับตรวจสอบเงื่อนไขเหมือนกับ if swicth ( ค่าตัวแปรที่ใช้ตรวจสอบ ) { case (ค่าที่ 1 ): คำสั่งที่จะทำเมื่อเงื่อนไขตรงกับค่าที่ 1 break; case (ค่าที่ 2 ): default: คำสั่งที่จะทำเมื่อเงื่อนไขไม่ตรงกับค่าใด ๆ เลย } Webpage Design and Programming Workshop
ฟังก์ชันที่ใช้ในการตรวจสอบเงื่อนไข 4. การตรวจสอบเงื่อนไขโดยใช้ switch $A = "ณ เชียงใหม่"; swicth ( $A ) { case ( "วัชรพงษ์" ): echo "ชื่อ"; break; case ( "ณ เชียงใหม่" ): echo "นามสกุล"; default: echo "อะไรก็ไม่รู้"; } Webpage Design and Programming Workshop
การส่งข้อมูลเพื่อการประมวลผล สิ่งที่สำคัญสำหรับการเขียนโปรแกรมในเครือข่ายอินเทอร์เน็ต คือการส่งข้อมูลจากเครื่องผู้ใช้โดยทั่วไป เพื่อเหตุผลต่าง ๆ ซึ่งทำให้ข้อมูลต่างๆของเว็บไซต์ มีปฏิสัมพันธ์กับผู้ใช้ ดังนั้นการ submit ฟอร์มเพื่อส่งข้อมูลไปยังไฟล์โปรแกรม PHP การเก็บข้อมูลของผู้ใช้ของเครื่องให้บริการ หรือการกลั่นกรองข้อมูลเพื่อส่งออกแสดงผลยังเครื่องผู้ใช้ การส่งค่าผ่านทางเว็บเพจ ใน HTML จะมีการการส่งค่าได้ 2 รูปแบบ นั่นคือ Webpage Design and Programming Workshop
การส่งข้อมูลเพื่อการประมวลผล 1. Post เมื่อ submit ฟอร์มด้วย method=post ข้อมูลที่อยู่ภายใน Form จะถูกส่งไปเก็บไว้ในตัวแปรตัวหนึ่งใน Web Server ตัวแปรนี้คือ CONTENT_LENGTH ซึ่งในการ post นี้ จะใช้ในกรณีที่ข้อมูลมีปริมาณมาก 2. Get แต่ถ้าใช้ method = Get ค่าที่ได้จากการ submit จะส่งไปให้กับ PHP โดยผ่าน URL ไปเก็บไว้ในตัวแปร QUERY_STRING ของ Web Server ถ้าเปลี่ยนจาก method = Post เป็น Get เมื่อ submit ให้สังเกตที่ช่อง Address จะพบข้อมูลที่ส่งโดยมีรหัสต่าง ๆ แทรกไปด้วย ดังนี้ Webpage Design and Programming Workshop
การส่งข้อมูลเพื่อการประมวลผล ? เครื่องหมาย ? จะกั้นระหว่าง URL กับข้อมูล key = value ข้อมูลที่ถูกส่งมา & คั่นระหว่าง key = value แต่ละอุปกรณ์ (ถ้ามี key มากกว่า 1) + แทนที่ช่องว่าง Webpage Design and Programming Workshop
การส่งข้อมูลเพื่อการประมวลผล ข้อแตกต่างระหว่าง Post และ Get GET การส่งข้อมูลแบบ GET = http://localhost/BSC442/welcome2.php?name=sunisa++phonphan&age=22&submit=Submit (โดยจะแสดงตัวแปร และค่าตัวแปรที่ส่ง) ข้อดีของ get คือ ไม่ต้องสร้างฟอร์ม ก็สามารถ ข้อเสีย คนอื่นสามารถเข้าถึงข้อมูลได้ง่าย POST การส่งข้อมูลแบบ POST = http://localhost/BSC442/welcome1.php ข้อดี มีความปลอดภัยมากกว่า Webpage Design and Programming Workshop
การติดต่อกับฐานข้อมูล MySQL mysql_connect(host,user,pass); ฟังก์ชั่นใช้ในการติดต่อฐานข้อมูล mysql_db_query(Db,SQL); ฟังก์ชั่นส่งคำสั่งให้ภาษา SQL ประมวลผล mysql_fetch_array($result); ฟังก์ชั่นอ่านข้อมูลหนึ่งแถวใน ตารางเข้าเก็บในตัวแปร mysql_close(); ฟังก์ชั่นยกเลิกการติดต่อฐานข้อมูล Webpage Design and Programming Workshop
Question and Answer