วันศุกร์ที่ 30 สิงหาคม พ.ศ. 2556

PHP:Hypertext Preprocessor

PHP เป็นภาษาที่พัฒนาด้วยหลักการบนพื้นฐานของ “Hypertext Preprocessor” ที่มีการใช้งานอย่างแพร่หลายในลักษณะ Open Source ซึ่ง PHP เป็น Server Side Scripting มีรูปแบบที่ง่ายต่อการเขียน โดยยืนอยู่บนพื้นฐานภาษา C, Java และ Perl ซึ่งจะง่ายต่อการเรียนรู้ การพัฒนาและการดูแลแก้ไข
PHP ได้รับการพัฒนาความสามารถขึ้นมาเรื่อยๆอย่างต่อเนื่อง ทั้งนี้เป็นเพราะมีการเปิดเผยซอร์สโค๊ดของ PHP สู่สาธารณะ ในลักษณะของ open source ทำให้มีหน่วยงาน และองค์กรต่างๆ เข้ามาช่วยกันพัฒนาทำให้ PHP มีความสามารถหลากหลาย เช่น
- สามารถในการจัดการกับตัวแปรหลายๆ ประเภท เช่น เลขจำนวนเต็ม (interger) , เลขทศนิยม
(float) , สตริง (string) และ Array (array) เป็นต้น
- สามารถในการรับข้อมูลจากฟอร์มของ HTML
- สามารถในการรับ-ส่ง Cookies
- สามารถเกี่ยวกับ Session
- สามารถทางด้าน OOP (Object Oriented Programming) ซึ่งรองรับการเขียนโปรแกรมเชิงวัตถุ
- สามารถในการเรียกใช้ COM component
- สามารถในการสร้างภาพกราฟิก
- สามารถทำงานเกี่ยวกับ Dynamic Web ได้ทุกรูปแบบ เหมือนกับ CGI หรือ ASP

- สามารถที่จะติดต่อกับโปรแกรมจัดการฐานข้อมูลที่มีอยู่มากมาย ดังนี้ Adabas D InterBase Solid Microsoft Access DBase mSQL Sybase Empress MySQL Velocis FilePro Oracle Unix dbm Informin PostgreSQL MS SQL Server - สามารถที่จะติดต่อกับบริการต่างๆผ่านทางโพรโตคอล (Protocol) เช่น IMAP, SNMP, NNTP, POP3,
HTTP และยังสามารถติดต่อกับ Socket ได้อีกด้วย
PHP เป็นภาษาสคริปต์ที่ทำงานทางฝั่งเซิร์ฟเวอร์ (server-side scripting language) ซึ่งมีลักษณะเป็น embedded script หมายความว่าเราสามารถฝังคำสั่ง PHP ไว้ในเว็บเพจ ร่วมกับคำสั่ง (แท็ก) ของ HTML ได้

วันอังคารที่ 20 สิงหาคม พ.ศ. 2556

การใช้ PHP Tag

การใช้ PHP Tag
PHP Tag ตามตัวอย่าง เริ่มต้นด้วย <?  และปิดด้วย  ?>  คล้ายกับ  HTML tag  เพราะเริ่มต้นด้วยเครื่องหมายน้อยกว่า (<)  และปิดด้วยเครื่องหมายมากกว่า  (>)  สัญลักษณ์เหล่านี้ เรียกว่า  PHP tag  ที่บอกแม่ข่ายเว็บการเริ่มต้นและสิ้นสุดคำสั่ง  PHP  ข้อความระหว่าง tag จะได้รับการแปลในฐานะ  PHP ข้อความภายนอก tag เหล่านี้ได้รับการปฏิบัติเหมือน HTML ปกติ  PHP tag  ยอมให้หลีกจาก  HTML

รูปแบบ PHP tag
รูปแบบ  PHP tag มี 4 แบบ แต่ละแบบของคำสั่งอย่างเหมือนกัน

รูปแบบย่อ (Short style)
<?  echo "<h1>TEST</h1>";?>

รูปแบบนี้เป็นรูปแบบง่ายที่สุดและเป็นไปตามมาตรฐานการประมวลผล SGML (Standard Generalized Markup Language) การใช้ tag ประเภทนี้ต้องให้ใช้ short tag ในไฟล์คอนฟิก php.ini ที่คำสั่ง short_open_tag ให้เป็น enable แต่ไม่แนะนำเนื่องจากไม่เป็นไปตามมาตรฐาน XHTML และมาตรฐานส่วนขยายเช่น PEAR

รูปแบบ  XML
<?php echo "<h1>TEST</h1>";?>

 tag รูปแบบนี้สามารถใช้กับเอกสาร  XML  (Extensible  Markup  Language)  ถ้าวางแผนให้ทำงานกับ  XML  ต้องใช้รูปแบบนี้

รูปแบบ  SCRIPT
< SCRIPT LANGUAGE='php'> echo "<h1>TEST</h1>"; </SCRIPT>

tag รูปแบบนี้  ยาวที่สุดและอาจจะคุ้นเคย ถ้าเคยใช้  JavaScript  หรือ  VBScript

รูปแบบ  ASP
<% echo "<h1>TEST</h1>"; %>

tag รูปแบบนี้เหมือนกับ Active Server  Pages  (ASP)  สามารถใช้ได้  ถ้าตั้งค่าคอนฟิกคำสั่ง  asp_tags ให้เป็น enable

ประโยคคำสั่ง  PHP
ประโยคคำสั่ง  PHP ใช้บอกตัวแปล PHP ให้ทำงาน โดยให้อยู่ระหว่าง tag เปิดและปิด
ตัวอย่างนี้ใช้ประโยคคำสั่งแบบหนึ่ง
echo "<p>TEST</p>";

คำสั่ง  echo  ตามตัวอย่างเป็นการพิมพ์ข้อมูลเมื่อส่งไปที่  browser  สามารถมองเห็นผลลัพธ์ของข้อความ  "TEST"  ปรากฎใน  browser

ที่ท้ายประโยคคำสั่ง echo มี semicolon(;) เครื่องหมายนี้ใช้แยกประโยคคำสั่งใน PHP  เหมือนกับจุด (.) ที่ใช้แยกประโยคในภาษาอังกฤษ  ถ้าเคยเขียนโปรแกรมด้วย  C หรือ  Java  จะมีความคุ้นเคยกับการใช้  semicolon

Whitespace
ตัวอักษรช่องว่าง  เช่น บรรทัดใหม่ (carriage returns),  space และ tab  รู้จักในชื่อ  whitespace  ตัวอักษรนี้ไม่ได้รับความสนใจจาก  PHP  และ  HTML ให้พิจารณา 2 คำสั่ง  HTML
<h1> WELLCOME PAGE ยินดีต้อนรับ </h1> <p> วันนี้ ท่านต้องการซื้อสินค้าอะไร? </p>

                และ
<h1> TEST ยินดีต้อนรับ </h1>
<p>วันนี้ ท่านต้องการซื้อสินค้าอะไร? </p>

คำสั่ง  HTML  2  ชุด  สร้างผลลัพธ์เหมือนกัน เพราะคำสั่งนี้ปรากฎใน  browser  อย่างไรก็ตามสามารถใช้  whitespace  ใน  HTML  เพื่อทำให้คำสั่ง  HTML  อ่านได้ง่าย  ถึงแม้ว่าไม่ต้องมี  whitespace  ระหว่างประโยคคำสั่ง  PHP  แต่ทำให้อ่านได้ ถ้าแยกแต่ละประโยคให้เป็นคนละบรรทัด  ตัวอย่างเช่น
echo "hello";
echo "world":

และ
echo "hello";  echo  "world";

คำสั่ง  2 ชุดให้ผลลัพธ์เหมือนกัน แต่ชุดแรกอ่านได้ง่ายกว่า

Comment
Comment ในคำสั่ง ทำหน้าที่เป็นหมายเหตุให้กับผู้อ่านคำสั่ง Comment สามารถใช้อธิบายวัตถุประสงค์ของสคริปต์ ทำไมถึงทำแบบนั้น การปรับปรุงครั้งสุดท้ายและอื่น ๆ

ตัวแปล  PHP จะไม่สนใจข้อความใน Comment โดยเฉพาะอย่างยิ่ง PHP parser ข้าม Comment ที่เทียบเท่ากับ whitespace

PHP สนับสนุนรูปแบบ Comment แบบ C, C++ และ Shell script

รูปแบบ  C เป็น Comment หลายบรรทัด
/*     Author: script-codephp.blogspot
Last Modified: 20/08/2013
This script processes the customer order.
*/

Comment หลายบรรทัด เริ่มต้นด้วย /* และปิดด้วย */ เหมือนภาษา C
Comment 1 บรรทัด สามารถใช้รูปแบบ C++
echo "<h1>TEST</h1>"; // Start printing order

หรือ รูปแบบ  Shell script
echo "<h1>TEST</h1>"; # Start printing order

วันจันทร์ที่ 19 สิงหาคม พ.ศ. 2556

Object Oriented Programming

Object oriented programming (OOP) มีจุดสำคัญคือ ความสามารถสร้างประเภทข้อมูลใหม่ที่มีข้อมูลและการทำงานร่วมกัน การพัฒนาแบบนี้ใช้การจัดความสัมพันธ์และคุณสมบัติของอ๊อบเจคในระบบในปฏิบัติงาน
Class
ในบริบทซอฟต์แวร์ OOP อ๊อบเจคสามารถเป็นสิ่งของหรือแนวคิดได้แก่ วัตถุทางกายภาค เช่น โต๊ะ ลูกค้า หรือวัตถุทางแนวคิดที่มีอยู่ในซอฟต์แวร์ เช่น พื้นที่ป้อนข้อความ ไฟล์ โดยทั่วไปความสนใจส่วนมากในวัตถุทางแนวคิด รวมถึงวัตถุในโลกจริงที่ต้องการนำเสนอในซอฟต์แวร์

ซอฟต์แวร์ OOP เป็นชุดของอ๊อบเจคเก็บคุณลักษณะและปฏิบัติการ โดย คุณลักษณะคือ คุณสมบัติหรือตัวแปรที่สัมพันธ์กับอ๊อบเจค ปฏิบัติการคือ เมธอดการกระทำหรือฟังก์ชันที่อ๊อบเจคสามารถทำการปรับปรุงตัวเองหรือผลกระทบภายนอก

ซอฟต์แวร์แบบนี้ สนับสนุนและช่วยการห่อหุ้ม (encapsulation) ที่เรียกว่าการซ่อนข้อมูล ส่วนสำคัญคือ การเข้าถึงข้อมูลภายในอ๊อบเจคมีให้เฉพาะการผ่านปฏิบัติการของอ๊อบเจคที่เรียกว่าอินเตอร์เฟซของอ ๊ อบเจค

class แสดงแทนชุดของอ๊อบเจคที่อาจจะแปรผันจากแต่ละอ๊อบเจค แต่ต้องมีผลร่วมกัน ถึงแม้ว่าค่าของคุณลักษณะเหล่านั้นจะแปรผันตามอ๊อบเจค ตัวอย่าง จักรยาน สามารถคิดเป็น class ของอ๊อบเจคที่อธิบายจักรยานหลายประเภทด้วยส่วนการทำงานรวมหรือคุณลักษณะ เช่น 2 ล้อ สี ขนาด และปฏิบัติการ เช่น การเคลื่อนย้าย 


Polymorphism 
ภาษา Object oriented programming ต้องสนับสนุน polymorphism ซึ่งหมายความว่า แต่ละ class สามารถมีพฤติกรรมต่างสำหรับปฏิบัติการเดียวกัน เช่น มี class รถยนต์ และ class จักรยาน ทั้งคู่มีปฏิบัติการเคลื่อนย้ายต่างกัน วัตถุในโลกจริงมีปัญหาน้อย อย่างไรก็ตาม ภาษาโปรแกรมไม่คิดเหมือนโลกจริง ดังนั้นภาษาต้องสนับสนุน polymorphism เพื่อทราบถึงปฏิบัติการที่ใช้โดยอ๊อบเจคเฉพาะ

polymorphism มีพฤติกรรมมากกว่าอ๊อบเจคใน PHP เฉพาะฟังก์ชันสมาชิกของ class สามารถเป็น polymorphism เปรียบเทียบกับโลกจริงคือ กริยาในภาษาธรรมชาติ ซึ่งเทียบเท่ากับฟังก์ชันสมาชิก พิจารณาการใช้จักรยานในชีวิตจริง คือ การทำความสะอาด การแยกชิ้น การซ่อม ทาสี เป็นต้น

การอินเฮอริต ยอมให้สร้างความสัมพันธ์ตามลำดับชั้น ระหว่าง class ด้วยการใช้ subclass โดย subclass ทำอินเฮอริต คุณลักษณะและปฏิบัติการจาก superclass

การอินเฮอริต ทำให้สามารถสร้างและเพิ่มไปยัง class ที่มีอยู่ จาก class ฐานอย่างง่าย สามารถทำได้มาจากให้ซับซ้อนมากขึ้นและเจาะจง class ตามความต้องการ สิ่งนี้ทำให้ใช้คำสั่งใหม่ได้ และเป็นข้อได้เปรียบสำคัญของ object oriented programming 

วันศุกร์ที่ 9 สิงหาคม พ.ศ. 2556

เรียนรู้เกี่ยวกับ Array และการใช้งาน

เรียนรู้เกี่ยวกับ Array และการใช้งาน

อะเรย์ (Array)
- อะเรย์หรือตัวแปรชุดคือตัวแปรที่สามารถเก็บค่าได้หลายๆค่า โดยใช้ตัวแปรตัวเดียว
- สิ่งที่อยู่ภายในอะเรย์เรียกว่าสมาชิก
- แต่ละสมาชิกในอะเรย์จะมีอินเด็กซ์เพื่อใช้อ้างอิง
- ใน PHP อินเด็กซ์จะเริ่มที่ 0 แต่สามารถกำหนดอินเด็กซ์ให้เป็นตัวอักษรได้

<html>
<body>
<?php
$arr[0] = "Red";
$arr[1] = "Green";
$arr[2] = "Blue";
$arr[3] = "White";
echo " $arr[0] , $arr[1] ,$arr[2] ,$arr[3] ";
?>
</body>
</html>

ข้อมูลแต่ละตัวในอะเรย์ไม่จำเป็น ต้องเป็นข้อมูลชนิดเดียวกัน เช่น อาจจะมีทัง้จำนวนเต็ม เลขทศนิยม ตัวอักษร
<?php
$arr[0] = "Chair";
$arr[1] = 20;
$arr[2] = 3.37;
$arr[3] = "A";
$all = count( $arr );
for ($i=0; $i < $all; $i++){
print "Member $i = $arr[$i] <BR>";
}
?>

ใน PHP อะเรย์ที่มีขนาดเปลี่ยนแปลงได้เรียกว่า dynamic arrayหรือ vector(สำหรับอะเรย์มิติเดียว)
- ไม่จำเป็นต้องประกาศตัวแปร
- ค่าของอะเรย์จะ ถูกกำหนดให้ตอนที่ โปรแกรมทำงาน (Run time)
<?php
$myarray[]=3;
$myarray[]=1.1;
$myarray[]="abc";
$all = count( $myarray);
for ($i=0; $i < $all; $i++){
print "Member $i = $myarray[$i] <BR>";
}
?>

ตัวอย่างการสร้างอะเรย์โดยใช้ฟังก์ชัน array และการเปรียบเทียบการใช้ For และ Foreach
<?php
$myarray = array( 5,6,7, 20,31,440,”PHP”,”GNA” );
$all = count( $myarray);
for ($i=0; $i < $all; $i++){
print "Member $i = $myarray[$i] <BR>";
}
foreach ($myarray as $myvalue) {
print "$myvalue <BR>";
}
?>

ตัวอย่างการสร้างอะเรย์โดยใช้ฟังก์ชัน array range(int low, int high)
<?php
$arr = range( 5,10);
$all = count( $arr );
for ($i=0; $i<$all; $i++){
echo "arr[" .$i. "] = ";
echo $arr[$i] . "<BR>" ;
}
?>

การนำข้อมูลจาก Text file มาเก็บไว้ใน Array
- ข้อมูลที่เก็บในแต่ละบรรทัดคือ ข้อมูลในแต่ละ Element
<?php
$des = file("test.php");
$count_des = count($des);
if($count_des==0) {
echo "ไม่มีข้อมูลใน File <br>";
}
for ($i=0; $i<$count_des; $i++) {
echo $des[$i] . "<br>";
}
?>

จากตัวอย่างที่แล้ว หากเราต้องการแสดงข้อความให้ถูกต้อง จำเป็นต้อง Convert SpecialCharacter ก่อนการ Display HTML โดยใช้ Function htmlspecialchars
<?php
$des = file("test.php");
$count_des = count($des);
if($count_des==0) {
echo htmlspecialchars("ไม่มีข้อมูลใน File <br>");
}
for ($i=0; $i<$count_des; $i++) {
echo htmlspecialchars($des[$i]) . "<br>";
}
?>

การใช้อะเรย์หลายมิติ(Multidimensional Array)
- กำหนดชื่อตัวแปรแล้วตามด้วยเครื่อง [..][..] สำหรับอะเรย์สองมิติและ [..][..][..]
สำหรับอะเรย์สามมิติ
$arr_2[1][1] = 4000; //$arr_2 เป็นอะเรย์สองมิติ
$arr_3[1][1][1] = 2000; //$arr_3 เป็นอะเรย์สามมิติ
<?php
$dim = 4;
for ($row=0; $row <= $dim; $row++) {
for($column = 0; $column <= $dim; $column++) {
$myarray[$row][$column] = 4 * $row * $column;
echo "4 x $row x $column = " . $myarray[$row][$column] . "<br>";
}
echo "<br>";
}
?>

อะเรย์แบบคู่ (Key/Value)
- การเก็บข้อมูลในอะเรย์แบบนีจ้ ะใช้กับข้อมูลที่จัดเก็บเป็นคู่ ๆ
File: lab4-15.php
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
$name =key($keep_age);
$age =current($keep_age);
print ("Age of <u>$name</u> is $age");
?>

อะเรย์แบบคู่ (Key/Value) ประเภท 2 มิติ
<?php
$countries = array (
"thailand" => array ( "zone" => "Asia", "D_NAME" => ".th"),
"malasia" => array ( "zone" => "Asia", "D_NAME" => ".my"),
"india" => array ( "zone" => "Asia", "D_NAME" => ".in"),
"holland“ => array ( "zone" => "Europe", "D_NAME" => ".nl"),
"france" => array ( "zone" => "Europe", "D_NAME" => ".fr")
);
echo "domain name=".$countries[ "thailand"]["D_NAME"]."<BR>\n";
?>

ฟังก์ชัน sort
- เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์โดยจัดเรียงข้อมูลจากค่าน้อยไปหาค่ามาก
<?php
$sort = array(50,40,30,35);
sort($sort);
for($r = 0; $r < count($sort);$r++){
echo "$sort[$r] <br>";
}
?>

ฟังก์ชัน asort
- เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลของValue จากค่าน้อยไปหาค่ามาก
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
asort($keep_age );
foreach ($keep_age as $key => $value) {
echo "$key = $value <br>\n";
}
?>

ฟังก์ชัน ksort
- เป็นฟังก์ชันที่ใช้ในการเรียงลำดับรายการข้อมูลในอะเรย์แบบคู่ โดยจัดเรียงข้อมูลของ Keyจากค่าน้อยไปหาค่ามาก
<?php
$keep_age = array(
“Joe" => 15 ,
“Game" => 18 ,
“Off" => 30 ,
“Champ" => 16 );
ksort($keep_age );
foreach ($keep_age as $key => $value) {
echo "$key = $value <br>\n";
}
?>

ฟังก์ชัน max ใช้ในการหาค่า maximum ของ Value ใน Array
- ฟังก์ชัน min ใช้ในการหาค่า minimum ของ Value ใน Array
- ฟังก์ชัน count ใช้ในการนับจำนวน Array ว่ามีทัง้ หมดเท่าไหร่
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo max( $arr) ,"<br>";
echo min( $arr) ,"<br>";
echo count( $arr) ,"<br>";
?>

ฟังก์ชัน current ใช้ดึง Value ของ Array ที่ Pointer ชีอ้ ยู่ หากเป็นการ Initialize Arrayตัว Pointer จะอยู่ที่ Array 0
- ฟังก์ชัน next ใช้เลื่อน Pointer ใน Array ไปข้างหน้าจำนวน 1 ช่อง
- ฟังก์ชัน prev ใช้เลื่อน Pointer ใน Array ถอยหลังจำนวน 1 ช่อง
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo current($arr) ,"<br>";
next ($arr);
echo current($arr) ,"<br>";
prev ($arr);
echo current($arr) ,"<br>";
?>

ฟังก์ชัน each ใช้ดึงค่าของ Array ที่ Pointer ชีอ้ ยู่ แล้วเลื่อน Pointer ใน Array ไปจำนวน1 ช่อง ค่าที่ดึงออกมาจะเป็น Array เช่นกัน
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
$myarr = each($arr);
echo $myarr['key'] . " => " . $myarr['value'] . "<br>";
$myarr = each( $arr);
echo $myarr[0] . " => " . $myarr[1] . "<br>";
?>

ฟังก์ชัน end ใช้เลื่อน Pointer ใน Array ไปลำดับสุดท้าย
<?php
$arr = array( 51,6,7,4,3,2,10,3,70 );
echo current($arr) ,"<br>";
end($arr);
echo current($arr) ,"<br>";
?>

ฟังก์ชัน key ใช้ดึง Key ของ Array ที่ Pointer ชีอ้ ยู่
<?php
$arr = array("code" => "123", "name" => "ABC" );
echo key ($arr) ,"<br>";
next($arr);
echo key ($arr) ,"<br>";
?>

ฟังก์ชัน reset เป็นคำสั่งให้เริ่มต้น Pointer ใหม่
<?php
$arr = array(10,20,30,40,50);
echo current($arr) ,"<br>";
next($arr);
echo current($arr) ,"<br>";
reset($arr);
echo current($arr) ,"<br>";
?>

ฟังก์ชัน list ใช้ในการรับค่าที่อ่านมาได้จากอะเรย์โดยจำนวนของตัวแปร (var1,var2,…)ที่ตัง้ รับในคำสั่งนีขึ้น้ อยู่กับขนาดอะเรย์ที่ส่งค่ามาให้ว่าอะเรย์นัน้ ส่งค่าข้อมูลมาให้จำนวนกี่ค่า
<?php
$arr = array("A"=>10,"B"=>20,"C"=>30);
while ( list($key,$data) = each($arr) ) {
echo "$key => $data<br>";
}
?>

ฟังก์ชัน print_r ใช้ในการแสดงค่าใน Array ทัง้ หมด
<?php
$arr = array("A"=>10,"B"=>20,"C"=>30);
print_r($arr);
?>
File: lab4-30.php
<?php
echo "\$_SERVER<br>";
print_r($_SERVER);
?>

วันพฤหัสบดีที่ 8 สิงหาคม พ.ศ. 2556

เรียนรู้เกี่ยวกับฟังชั่น PHP

ฟังก์ชันของ PHP
ฟังก์ชันคือ โปรแกรมย่อยที่สามารถประมวลผล และ คืนผลลัพธ์จาการประมวลผลนั้นสู่โปรแกรมหลักได้ ซึ่งจำเป็นในการเขียนโปรแกรมเพื่อช่วยให้การทำงานมีประสิทธิภาพที่สูงขึน้โดยฟังก์ชันของ PHP มี 2 ส่วน คือ
- ฟังก์ชันที่ผู้ใช้สร้างขึน้ มาเอง
- ฟังก์ชันที่มากับ PHP (สามารถเรียกใช้งานได้ทันที)
ชื่อของคลาสและฟังก์ชันที่ผู้ใช้ทำการกำหนดเอง ตลอดจน constructs และ keywords ต่าง ๆเช่น echo, while, class เป็นต้น มีคุณสมบัติเป็นแบบ case-insensitive ตัวอย่างเช่น echo,ECHO, EcHo
แต่ในทางกลับกัน ชื่อตัวแปรต่าง ๆ นัน้ PHP จะมองเป็น case-sensitive ตัวอย่างเช่น $name,$NAME และ $NaMe
ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง
ผู้ใช้สามารถสร้างฟังก์ชันขึน้ มาใหม่ ทำได้โดยง่าย โดยอาศัยโครงสร้างพืน้ ฐานตัวแปร ค่าคงที่ โอเปอเรเตอร์ และการควบคุมโปรแกรมที่กล่าวมาแล้ว มาใช้ใน
การสร้างฟังก์ชัน สำหรับฟังก์ชันที่ผู้ใช้สร้างขึน้ มาเอง แบ่งออกเป็น 2 รูปแบบคือ
- ฟังก์ชันที่ไม่มีการส่งค่าระหว่างฟังก์ชัน
- ฟังก์ชันที่มีการส่งค่าระหว่างฟังก์ชัน
ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง - ไม่มีการส่งระหว่างฟังก์ชัน
ฟังก์ชันแบบนี้ผู้ใช้จะต้องกำหนดชื่อและขัน้ ตอนการทำงานของฟังก์ชันไว้ที่ต้นของโปรแกรมก่อน หลังจากนัน้ สามารถเรียกใช้งานได้ทันที รูปแบบการสร้างฟังก์ชันมีดังนี้
function functionName(){
instructions;
}
functionName(); //เรียกใช้งาน
ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง - ตัวอย่างฟังก์ชันที่ไม่มีการส่งระหว่างฟังก์ชัน
<?php
function Contact(){
echo “TEST 0123456789”;
}
Contact();
?>
TEST 0123456789
ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง - มีการส่งค่าระหว่างฟังก์ชัน
function functionName(parameter){
return (instructions);
}
functionName(parameterValue); //เรียกใช้งาน
ฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง - ตัวอย่างฟังก์ชันที่มีการส่งระหว่างฟังก์ชัน
<html><body>
<?php
echo"จะแทรกไว้ส่วนบนของ Function ก็ได้ <br>";
echo circle_area(5);
function circle_area($radius){
return M_PI*$radius*$radius;
}
?>
<br><br>หรือจะแทรกไว้ส่วนล่างของ Function ก็ได้<br>
<?php echo circle_area(5); ?>
</body></html>

วันอังคารที่ 6 สิงหาคม พ.ศ. 2556

รูปแบบการบริการ Web Hosting ในปัจุบัน

หลังจากที่ได้ทราบชนิด Web Hosting  ต่อไปจะแนะนำรูปแบบการใช้งานและบริการโดยจะแบ่งรายละเอียดดังนี้

1. โครงสร้างการทำงานบนระบบเว็บ
2. ชนิดของ web hosting
3. รูปแบบการบริการ web hosting ในปัจจุบัน
4. หลักการเลือกผู้ให้บริการเว็บโฮสติ้งที่ดี

โครงสร้างการทำงานบนระบบเว็บ
ในระบบเว็บมีโครงสร้างการทำงานหลายลำดับชั้นด้วยกันโดยเริ่มตั้งแต่
Web hosing > web server > web browser
Website > Home Page > Web Page

Web hosing คือ?
การให้บริการเกี่ยวกับการฝากข้อมูลเว็บไซต์ โดยที่ศูนย์บริการรับฝาก webhosing จะมีเครื่องเซิร์ฟเวอร์ให้บริการตามชนิดของภาษา และฐานข้อมูลที่ผู้ใช้งานพัฒนา การติดตั้ง web hosing ใช้งานในองค์กรไม่ใช่เรื่องง่าย ผู้ที่เป็นผู้ดูแลระบบ (admin) จะต้องศึกษารายละเอียดหลายอย่างด้วยกัน ทั้งในส่วนของการติดตั้งระบบปฏิบัติการเครือข่าย การปรับแต่งค่าคอนฟิ กต่างๆ การติดตั้งระบบบริหาร web hosing (Control Panel) การสำรองฐานข้อมูลลูกค้า

การแบ่งชนิดของ web hosting
1. แบ่งตามลักษณะการใช้งาน
2. แบ่งตามระบบปฏิบัติการเครือข่าย

ชนิดของ web hosing แบ่งตามลักษณะการใช้งาน
แบ่งได้เป็น 2 ชนิด คือ
1. Free web hosting ให้บริการฟรี แบ่งได้อีก 2 ชนิด คือ
1.1 Static web hosting
1.2 Dynamic web hosting
2. Commercial web hosting เป็น web hosting ที่บริการโดยศูนย์บริการอินเตอร์เน็ต หรือบริษัทเอกชน ผู้ใช้ต้องจ่ายเงินค่าฝากข้อมูลเป็นรายเดือนหรือรายปี

ชนิดของ web hosing แบ่งตามระบบปฏิบัติการ
1. Windows web hosting เป็นโฮสติ้งที่ใช้ระบบปฏิบัติการwindows server เช่น windows 2000 server, windows server2003, windows server 2008
2. Linux web hosting เป็นโฮสติ้งที่ใช้ระบบปฏิบัติการ Linux มีให้เลือกหลายค่ายด้วยกัน ทั้งแบบเชิงการค้าและแบบฟรี เช่น Fedora,CentOS, Debian, Ubuntu, Redhat, Slackware
3. BSD web hosting เป็นโฮสติ้งที่ใช้ระบบปฏิบัติการตระกูล BSDนิยมใช้งานในศูนย์บริการอินเตอร์เน็ตของสถาบันการศึกษา และบริษัทเอกชนหลายแห่ง เนื่องจากตัวระบบมีความแข็งแกร่งสูง เช่น FreeBSD,OpenBSD, NetBSD

รูปแบบการบริการ Web hosting ในปัจจุบัน
สามารถแบ่งจำแนกรูปแบบการให้บริการได้ทั้งหมด 6 ประเภทใหญ่ๆ ดังนี้
1. Stand Alone Web Hosting
2. Shared Web Hosting
3. Reseller Web Hosting
4. Dedicated Web Hosting
5. Co-Location web Hosting
6. VPS Web Hosting

1.Stand Alone Web Hosting
- เป็น web hosting ที่ติดตั้งใช้งานอยู่ที่หน่วยงานตนเอง
- ผู้ดูแลระบบต้องติดตั้งและปรับแต่งโฮสติ้งเองทั้งหมด
- เหมาะสำหรับองค์กรที่มีการเชื่อมต่ออินเตอร์เน็ตความเร็วสูงแบบ Fix IP

2.Shared Web Hosting
- เป็นบริการรับฝาก web hosting ที่แบ่งขายลูกค้าเป็นรายๆ
- หมาะสำหรับผู้เริ่มต้นทำเว็บไซต์และต้องการมีโดเมนและเว็บไซต์เป็นของตนเอง

3.Reseller Web Hosting
- เป็นโฮสติ้งที่ทางผู้ให้บริการมีการแบ่งพื้นที่ให้ลูกค้าเป็นรายๆ ลูกค้าไม่จำเป็นต้องลงทุนซื้อเซิร์ฟเวอร์เอง เพียงแค่จ่ายค่าเช่าพื้นที่เป็นรายเดือน/รายปี
- ลูกค้าไม่จำเป็นต้องมีความเชี่ยวชาญในการติดตั้งระบบก็สามารถเป็นเจ้าของโฮสติ้งได้
- เหมาะสำหรับผู้ที่รับทำเว็บไซต์ มีลูกค้าในการควบคุมหลายราย หรือ องค์กรที่มีชื่อโดเมนในการควบคุมหลายโดเมน

4.Dedicated Web Hosting
- เป็นการบริการให้เช่าเครื่องเซิร์ฟเวอร์ทั้งเครื่อง
- เหมาะสำหรับองค์กรขนาดใหญ่ หรือเว็บไซต์ที่มีสมาชิกจำนวนมาก
- ผู้ดูแลสามารถควบคุมเครื่องได้อย่างอิสระ
- สามารถมีโดเมนภายในได้ไม่จำกัด โดยผู้ใช้บริการสามารถเลือกได้ว่าจะชำระค่าใช้จ่ายครั้งเดียว หรือผ่อนชำระเป็นรายเดือน

5.Co-Location Web Hosting
- เป็นบริการสำหรับลูกค้าที่มีเครื่องเซิร์ฟเวอร์อยู่แล้ว และต้องการนำเซิร์ฟเวอร์ฝากวางไว้กับผู้ให้บริการ
- เนื่องจาก สามารถเชื่อมต่ออินเตอร์เน็ตได้ 24 ชั่วโมง ไม่จำกัดแบนด์วิดธ์ และมีengineer คอยเฝ้าดูเซิร์ฟเวอร์ตลอดเวลา
- การคิดค่าบริการตามขนาดของเครื่อง server เช่น 1U, 2U, 3U, 4U, MiniTower, Medium Tower, Full Tower

6.VPS Web Hosting
- VPS ย่อมาจาก Virtual Private Server หรือ เซิร์ฟเวอร์เสมือน
- เป็นบริการที่เซิร์ฟเวอร์หนึ่งเครื่องสามารถแบ่งให้ลูกค้าใช้งานแบบจำกัดจำนวนลูกค้า (ลูกค้า VIP)
- คล้ายกับการทำ Dedicated Server บริการลูกค้าหลายรายไว้บนเซิร์ฟเวอร์เครื่องเดียวกัน
- ลูกค้าจะสามารถเข้าถึงเครื่องเซิร์ฟเวอร์ และปรับเปลี่ยนค่าต่างๆได้ โดยการRemote access
- ตัวอย่างซอฟต์แวร์ที่ใช้ทำ VPS เช่น OpenVZ, FreeVPS, Virtuozzo,Linux-VServer

ปัจจัยในการพิจารณาเลือกรูปแบบ Web hosting
1. จำนวนผู้ใช้งาน/สมาชิก
2. งบประมาณของบริษัท
3. ผู้ดูแลระบบ
4. มีเซิร์ฟเวอร์เป็นของตนเองหรือไม่
5. ลักษณะการเชื่อมต่ออินเตอร์เน็ตขององค์กร

หลักการเลือกผู้ให้บริการเว็บโฮสติ้งที่ดี
พิจารณาความเร็วและพื้นที่ใช้งาน
– Data Transfer ต่อเดือน ภายในประเทศ และนอกประเทศ
– พื้นที่ใช้งานเว็บไซต์ และ อีเมลล์
พิจารณาระบบปฏิบัติการบนเครื่องแม่ข่าย : Windows , Linux
พิจารณาโปรแกรมต่างๆ บน Host
– Program Web Server
– Program แปลภาษา ; MS-ASP , Linux-PHP
– Database Program ;
MS - SQLServer
Linux – mySQL
– ชนิดของ Control panel เช่น cPanel, Direct Admin, Plesk, VHCS,ISPConfig
ใบรับรองอีเล็กทรอนิกส์
ราคาค่าเช่าและค่าบริการ
การสำรองข้อมูลระบบ การบริการหลังการขาย

คอนโทรลพาเนลสำหรับบริหาร web hosting
- เป็นระบบที่ใช้ควบคุมและบริหาร web hosting ทำให้การควบคุมต่างๆสามารถทำได้ผ่านทางหน้าเว็บเบราเซอร์ ผู้ควบคุมสามารถทำการปรับแต่งค่าคอนฟิกต่างๆ ได้แบบออนไลน์ ไม่ว่าจะเป็นการจัดการโดเมน, ซับโดเมนม, DNS,IP address, web server, mail server, antivirus, php, Mysql,Disk Quota และอื่นๆ อีกมากมาย
- ปัจจุบัน สามารถแบ่งได้ 2 ชนิด
1. Commercial Control Panel
– cPanel, DirectAdmin, Ensim, Plesk, Mx-Controller,Helm
2. Open Source Control Panel
– ISPConfig, VHCS

วันเสาร์ที่ 3 สิงหาคม พ.ศ. 2556

การ รับ และ ค่าจาก formแบบ POST

หลายคนคงเคยใช้ฟอร์มในการส่งค่าวันนี้จะมาอธิบายวิธีการส่งค่าทั้งแบบ GET และแบบ POST ว่าต่างกันยังไงและการใช้งานจะใช้งานยังไง ก่อนอื่นจะพูดถึงการส่งค่าผ่านฟอร์มแบบ POST ก่อน การส่งค่าแบบ POST นั้นเราจะมองไม่เห็นค่าที่ส่งไปเหมือนแบบ GET การส่งค่าแบบ POST นั้นเราคงเห็นตัวอย่างในหลายๆที่เช่นฟอร์มการสมัครสมาชิก ฟอร์มการ Login หรือหลายๆฟอร์มที่ให้ผู้ใช้งานระบุค่า พูดไปอาจจะงง มาดูตัวอย่างกันเลยดีกว่า
ตัวอย่าง หน้า form ที่รับค่า

<form name='form1' method='POST' action=''>
Username<br/>
<input type ='text' name='username' size='30'><br/>
<input type ='submit' name='submit' value='Submit'>
</form>
การแสดงผล
Username


ส่วนหน้าที่จะรับค่าก็ให้ทำการประกาศรับค่า POST มาเก็บไว้ในตัวแปรก่อนจะนำค่านั้นไปใช้งานต่อๆไป
ตัวอย่างการประกาศรับค่า
<?php
$user = $_POST['username'];
echo $user; //ค่าที่แสดงผลก็เป็นข้อความที่กรอกผ่าน Textbox มานั่นเอง
?>

วันศุกร์ที่ 2 สิงหาคม พ.ศ. 2556

เรียนรู้การใช้งาน if else

เรียนรู้การใช้งาน if  else
ฟังค์ชั่น if  else นั้นคือการทำงานแบบมีเงื่อนไข คำสั่งที่เราใช้ในการตรวจสอบเงื่อนไขนั้นคือ if เพื่อตรวจสอบเงื่อนไขว่าเป็น "จริง" หรือ "เท็จ"  และถ้าเงื่อนไขเป็นจริงจะให้ทำอะไรต่อ หรือ ถ้าเงื่อนไขเป็นเท็จจะให้ทำอะไรต่อ  สามารถนำไปประยุกต์ใช้งานได้หลายรูปแบบ
รูปแบบการใช้งาน

if (ระบุเงื่อนไขที่ให้ตรวจสอบ)
{
 //ถ้าเงื่อนไขเป็นจริงจะให้ทำอะไร
}else{
//ถ้าเงื่อนไขเป็นเท็จจะให้ทำอะไร
}

source code

<?php
$time1= date("H");
if($time1 < 20){
echo "สวัสดีตอนเช้า";
}else{
echo "สวัสดีตอนกลางคืน";
}
?>

วันพฤหัสบดีที่ 1 สิงหาคม พ.ศ. 2556

for (Loop)กับลักษณะการทำงาน

for (Loop)กำลักษณะการทำงาน
ซึ่งหมายถึงการทำงานซ้ำๆของเงื่อนไขนั้นๆตราบใดที่เงื่อนไขยังเป็นจริง
การทำงานของ for จะมีการตรวจสอบเงื่อนไขอยู่ 2 แบบคือ
1. Pretest Loop ลูปประเภทนี้จะทำการตรวจสอบเงื่อนไขก่อนว่าเป็นจริง หรือเป็นเท็จถ้าเป็นจริงก็ให้เข้าไปทำคำสั่งหรือชุดคำส่งต่อไป และเมื่อทำคำสั่งหรือชุดคำสั่งเสร็จแล้วก็จะกลับมาทำการตรวจสอบเงื่อนไขอีกครั้ง แลดะจะทำเช่นนี้ไปเรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จ
2. post-Test loop ลูปประเภทนี้จะทำคำสั่งหรือชุดคำสั่งก่อน เมื่อเสร็จแล้วถึงจะมาตรวจสอบเงื่อนไขว่าเป็นจริงหรือเป็นเท็จ ถ้าเป็นจริงก็จะกลับไปทำคำสั่งหรือชุดคำสั่งเดิมอีกครั้งแลดะจะทำจนกว่าเงื่อนไขจะเป็นเท็จเช่นเดียวกัน
ลูปทั้งสองแบบนั้นจะต่างกันตรงที่จำนวนการทำคำสั่งหรือชุดคำสั่งนั้นจะไม่เท่ากัน
ลูปแบบ pretest นั้นโอกาสการทำคำสั่งหรือชุดคำสั่งที่น้อยที่สุดจะเท่ากับ 0 คือ เมื่อทำการตรวจสอบเงื่อนไขครั้งแรกแล้วเป็นเท็จก็จะออกจากลูป แต่ลูปแบบ post-test นั้นโอกาสที่น้อยที่สุดจะเท่ากับ 0 คือ เมื่อเข้าจะทำคำสั่งหรือชุดคำสั่งก่อน 1 ครั้งและเมื่อตรวจสอบเงื่อนไขครั้งแรกแล้วจะเป็นเท็จ ก็จะออกจากลูป

ตัวอย่าง

<?php
for ($i=1; $i<=5; $i++)
  {
  echo "ค่าของ I = " . $i . "<br>";
  }

?>

ค่าที่แสดงผล

ค่าของ I = 1
ค่าของ I = 2
ค่าของ I = 3
ค่าของ I = 4
ค่าของ I = 5