บล็อกนี้จัดทำขึ้นเพื่อใช้ในการศึกษาเกี่ยวกับเทคโนโลยีสารสนเทศ

วันศุกร์ที่ 22 มิถุนายน พ.ศ. 2555

การเขียนภาษา PHP เบื้องต้น

การเขียนภาษา PHP เบื้องต้น
การวางตำแหน่งของ PHP Script
การวางตำแหน่งของ Script สามารถแทรกลงในส่วนไหนของ HTML ก็ได้ โดยมีเครื่องหมาย
<? เปิดสคริป และ ?> ปิดสคริป
ตัวอย่าง
<html>
<head>
<title>Test PHP</title>
</head>
<body>

<center>
<font face="MS Sans Serif" size=2>ทดสอบการแสดงผล</font>
</center>

<? echo "<center><font face=\"ms sans serif\" size=3>Test PHP Script</font></center>"; ?>

</body>
</html>

การแสดงข้อความออกทาง Browser
เราสามารถใช้คำสั่ง ในการแสดงผลได้ 2 คำสั่งคือ echo และ print ซึ่งสามารถใช้แทนกันได้ทันที โดยไม่ต้องเปลี่ยน syntax ใดๆ อีก
ตัวอย่าง
<?
echo "<center><font face=\"ms sans serif\" size=3>Test PHP Script</font></center>";
print "<center><font face=\"ms sans serif\" size=3>Test PHP Script</font></center>";
?>
ผลที่ได้ :
Test PHP Script
Test PHP Script

เราจำเป็นต้องใส่ \ ไว้ข้างหน้า " เพื่อป้องกันไม่ให้ PHP ตีความผิดว่า code บรรทัดนั้นสิ้นสุดแล้ว
ถ้าไม่ใส่ \ แล้ว PHP จะตีความเป็น
echo "<center><font face="
มันจะเข้าใจว่าจบ code แล้ว ซึ่งคล้ายกับ Perl

การใส่ Comment ภายใน Script
การใส่ comment ทั้งแบบบรรทัดเดียว และหลายบรรทัด ให้ใช้ /* เปิดหัว และ */ เพื่อปิดท้าย comment
การใส่ // หรือ # ไว้ข้างหน้าประโยคที่เป็น comment ได้เพียงบรรทัดต่อบรรทัดเท่านั้น
ตัวอย่าง
<?
echo "test"; /* แสดงข้อความ text */
/* comment หลายบรรทัด
ก็สามารถทำได้ */
echo "$sum"; // The summation of cost
echo "$mem_id"; // ID of each member
echo "$max_id"; # Maximun of member ID
?>

การกำหนดตัวแปร
การกำหนดตัวแปร (variable) และ operation
ตัวอย่าง
<?
$num1=3;
$num2=4;
$sum=$num1+$num2;
echo "<center><font face=\"ms sans serif\" size=3>$sum</font></center>";
?>
ผลที่ได้ : 7
หากใช้เป็น
$num1='3';
$num2='4';
หรือ
$num1="3";
$num2="4";
                ก็ยังได้ผลลัพท์เช่นเดิม เพราะ PHP มีความสามารถในการเปลี่ยน variable type จากตัวหนังสือ เป็นตัวเลขโดยอัตโนมัติ เนื่องจาก + เป็น operation ของตัวเลข
ตัวอย่าง
<?
$char1='Today';
$char2='is';
$char3='Sunday.';
echo "<center><font face=\"ms sans serif\" size=3>$char1 $char2 $char3</font></center>";
?>
ผลที่ได้ : Today is Sunday.


การแสดงผลต่อเชื่อมระหว่างตัวแปรและตัวหนังสือ
                หากเราต้องการแสดงผลโดยใช้ข้อความที่กำหนด กับค่าที่ได้จากการ execute โปรแกรม ดังตัวอย่างเช่น
การสร้างไฟล์ที่มีชื่อเป็นรหัสสมาชิก แล้วตามด้วยนามสกุล .txt
เราใช้ . ในการเชื่อมระหว่าง variable และข้อมูลที่เป็น text
ตัวอย่าง
<?
$filename='0001' /* สมมุติว่า 0001 คือรหัสที่ได้รับจาก Form ที่สมาชิกกรอก */
echo $filename.".txt";
?>
ผลที่ได้ : 0001.txt

การใช้เงื่อนไข  
การใช้ IF...ELSE Condition
ตัวอย่าง
<?
$sum=10;
if ($sum==0) {
echo "Summation is 0";
}
else {
echo "Summation = ". $sum;
}
?>
ผลที่ได้ : Summation = 10

ในกรณีที่ไม่ใช้ else ก็สามารถทำได้เช่นกันครับ
ตัวอย่าง
<?
$sum=0;
if ($sum==0) {
echo "Summation is 0";
}
?>
ผลที่ได้ : Summation = 0

ส่วนกรณีที่มีหลาย Case ก็ใช้ else if เข้าช่วย
ตัวอย่าง
<?
$a=5;
$b=6;

if ($a>$b) {
print "a is bigger than b";
}
elseif ($b>$a) {
print "a is not bigger than b";
}
else {
print "a and b are the same";
}
?>
ผลที่ได้ : a is not bigger than b
การใช้ Switch
ตัวอย่าง
<?
$i=2;
switch ($i) {
case 0: print "i equals 0"; break;
case 1: print "i equals 1"; break;
case 2: print "i equals 2"; break;
}
?>
ผลที่ได้ : i equals 2

การใช้ลูป  
การใช้ While Loop
ตัวอย่าง
<?
$i=1 // ให้ค่าเริ่มต้น
while ($i<=5) {
print $i;
$i++;
}
?>
ผลที่ได้ : 12345

ใช้ Do while ก็ได้ แต่ผลที่ได้ จะแตกต่างจาก While Loop ในบางกรณี เพราะจะทำงานภายใน loop ก่อนที่จะตรวจสอบ condition
ตัวอย่าง
<?
$i=5 // ให้ค่าเริ่มต้น
do {
print $i;
$i++;
} while ($i<=5);
?>
ผลที่ได้ : 5

สรุปว่า
กรณีที่ใช้ While...Loop จะทำการตรวจสอบเงื่อนไขก่อน แล้วจึงค่อยทำในลูป
กรณีที่ใช้ Do...Loop จะทำคำสั่งในลูปก่อน แล้วจึงค่อยตรวจสอบเงื่อนไข
คำสั่ง For Loop ก็จะทำงานเหมือนกับคำสั่ง While Loop คือ จะทำการตรวจสอบเงื่อนไขก่อน แล้วจึงค่อยทำงานในลูป
ตัวอย่าง
<?
for ($i=1; $i <=5; $i++) {
print $i;
}
?>
ผลที่ได้ : 12345
Text ไฟล์  
คำสั่งในการเปิดไฟล์
คำสั่ง fopen()
รูปแบบ : fopen(filename,mode);
filename : ชื่อไฟล์ที่ต้องการจะเปิด
mode : วัตถุประสงค์ในการเปิดไฟล์ ซึ่งเราสามารถระบุได้ เช่น ต้องการเปิดไฟล์เพื่ออ่าน หรือ เขียน
โดยมีค่า mode ดังนี้
r  หมายถึง เปิดไฟล์เพื่ออ่านอย่างเดียว เช่น ใช้ในการอ่านข้อมูลจากไฟล์
r+ หมายถึง เปิดไฟล์เพื่ออ่านและเขียน
w,w+ หมายถึง เปิดไฟล์เพื่อเขียนข้อมูลลงไป ถ้ามีไฟล์อยู่แล้วข้อมูลเดิมจะถูกลบหมดและถ้ายังไม่มีไฟล์ดังกล่าว ก็จะทำการเปิดไฟล์ใหม่ให้เลย
a หมายถึง เปิดไฟล์เพื่อเพิ่มข้อมูล เช่น ในการเพิ่มข้อมูลใหม่ลงไป
a+ หมายถึง เปิดไฟล์เพื่อเพิ่มข้อมูล เช่น ในการเพิ่มข้อมูลใหม่ลงไป และถ้ายังไม่มีไฟล์ ก็จะทำการสร้างใหม่ให้เลย

ตัวอย่าง
$fp = fopen("data.txt","r");

หมายถึง ทำการเปิดไฟล์ที่ชื่อ data.txt เพื่ออ่านอย่างเดียว
ตัวแปร $fp จะเป็นหมายเลขอ้างอิงไฟล์ที่เราเปิด

คำสั่งในการเขียนข้อมูลลงในไฟล์
คำสั่ง fputs() , fwrite()
รูปแบบ : fputs(fp,text,[length]);
รูปแบบ : fwrite(fp,text,[length]);
fp : หมายเลขอ้างอิงไฟล์
text : เป็นตัวแปรชนิดข้อความ หรือ ข้อข้อความที่จะใช้เขียนลงในไฟล์
lenght : จำนวนตัวอักษรที่จะใช้เขียนลงไฟล์ จะระบุหรือไม่ก็ได้

หมายเหตุ
คำสั่ง fputs และ fwrite ทำหน้าที่เหมือนกัน
และเมื่อเราทำการเขียนข้อมูลลงไฟล์จนเสร็จเรียบร้อยแล้ว เราก็ต้องปิดไฟล์ทั้งหมดที่เราเปิดด้วยคำสั่ง
fclose(fp);
ตัวอย่าง
<?
$fp = fopen("mydata.txt","w");
fwrite($fp,"สวัสดีครับเจ้านาย");
fclose($fp);
?>
ผลที่ได้ : จะได้ไฟล์ที่ชื่อว่า mydata.txt ซึ่งจะอยู่ในไดเรกทอรีเดียวกับ
เว็บเพจที่ถูกเรียก และในไฟล์ mydata.txt จะมีข้อความว่า สวัสดีครับเจ้านาย อยู่ในนั้น

คำสั่งในการอ่านข้อมูลจากในไฟล์
คำสั่งที่ใช้ file_exists() , fgets() , file() , sizeof()

เรามาดู 2 คำสั่งแรกกันก่อนครับ
คำสั่ง file_exists() , fgets()
รูปแบบ : file_exists(filename);
รูปแบบ : fgets(fp,length);

คำสั่ง file_exists() ใช้ในการตรวจสอบว่าไฟล์ที่เราจะเปิดนั้นมีอยู่จริงหรือไม่
ส่วนคำสั่ง fgets() ใช้ในการอ่านข้อมูลจากไฟล์
ตัวอย่าง
<?
$filename = "mydata.txt";
if (file_exists($filename))
{
echo "มีไฟล์ที่ชื่อว่า $filename";
$fp = fopen($filename,"r");
while($data = fgets(fp,100))
{
echo $data;
}
}
else
{
echo "ไม่มีไฟล์ที่ชื่อว่า $filename";
}
?>

ผลที่ได้ :
อันดับแรก กำหนดให้ตัวแปรชื่อ $filename มีค่าเท่ากับ "mydata.txt"
หลังจากนั้นก็จะทำการตรวจสอบว่ามีไฟล์ที่ชื่อว่า mydata.txt อยู่หรือไม่
ถ้ามีไฟล์ดังกล่าวอยู่ ให้แสดงข้อความว่า มีไฟล์ที่ชื่อว่า mydata.txt
และทำการวนลูปเพื่ออ่านข้อมูลจากไฟล์ขึ้นมาแสดง โดยให้เก็บไว้ที่ตัวแปรที่ชื่อว่า $data
ซึ่งจะทำการเก็บครั้งละ 100 ตัวอักษร
จะเห็นได้ว่า เราใช้ while...loop มาช่วยในการอ่านข้อมูลจาก text ไฟล์
เมื่อ $data เท่ากับบรรทัดสุดท้ายของไฟล์ ซึ่งหมายความว่าอ่านข้อมูลจนหมดแล้ว
ระบบจะส่งค่า EOF มาให้กับ $data ทำให้หลุดออกจาก loop และทุกครั้งที่สามารถ
อ่านข้อมูลได้ ก็จะทำการแสดงข้อมูลที่หน้าจอด้วย

และถ้าตอนแรกตรวจสอบแล้วไม่พบไฟล์ที่ชื่อว่า mydata.txt ก็ให้แสดงคำว่า
ไม่มีไฟล์ที่ชื่อว่า mydata.txt
ทำไมต้องกำหนดให้ length ในคำสั่ง fgets มีค่าเท่ากับ 100
ก็เพราะว่าใน text ไฟล์ส่วนใหญ่ 1 บรรทัดจะมีไม่เกิน 100 ตัวอักษร
และถ้าบรรทัดไหนที่มีไม่ถึง 100 ตัวอักษร ก็จะทำการอ่านเท่าที่มีอยู่ในแต่
ละบรรทัดนั้นๆ ครับ :)

วิธีการอ่านไฟล์อีกแบบโดยใช้คำสั่ง file() , sizeof()
วิธีการนี้จะเป็นการอ่านไฟล์ทีละบรรทัดลงในตัวแปรอาร์เรย์
รูปแบบ : file(filename);
รูปแบบ : sizeof(array);
ตัวอย่าง
<?
$filename = "mydata.txt";
$line = file($filename);
for($i=0 ; $i < sizeof($line) ; $i++)
{
echo $line[$i],"<br>"
}
?>

ผลที่ได้ :
กำหนดให้ $filename มีค่าเท่ากับ "mydata.txt"
ทำการอ่านข้อมูล แล้วนำมาเก็บในตัวแปรอาร์เรย์ที่ชื่อว่า $line
ทำการวนลูป ตั้งแต่อาร์เรย์ลำดับที่ 1 จนไปถึงลำดับสุดท้าย
แล้วทำการแสดงข้อมูลออกมา

เราจะใช้คำสั่ง file(filename) เพื่อทำการอ่านข้อมูลจากไฟล์
ทั้งไฟล์ไปเก็บไว้ในตัวแปรอาร์เรย์ แล้วทำการหาขนาดของตัวแปร
อาร์เรย์จากคำสั่ง sizeof(array) จากนั้นถ้าเราต้องการแสดง
ผลลัพธ์ ก็เพียงแค่นำค่าจากตัวแปรอาร์เรย์มาแสดง ครับ

อ้างอิงจาก http://php.deeserver.com/

ไม่มีความคิดเห็น: