การเขียนโปรแกรมภาษา PHP

            
               

Sample5.php ตัวอย่างเช่น การหาค่าสัมบรูณ์ของตัวเลข


<?
function myabs ($x) {
if ($x < 0)
return -$x;
}
echo myabs(-6),"<BR>\n";
echo myabs(-4+2.034),"<BR>\n";
?>
Out Put
6
1.966



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

Sample6.php


<?
function minmax (&$a,&$b) {
if ($a > $b) {
$t=$a; $a=$b; $b=$t;
}
}
$x=10;
$y=3;
echo "x=",$x,",y=",$y,"<BR>\n";
minmax($x,$y);
echo "x=",$x,",y=",$y,"<BR>\n";
?>
Out Put
x=10,y=3
x=3,y=10

ฟังก์ชัน minmax() เป็นตัวอย่างของฟังก์ชันที่ใช้หลักการของ call-by-reference โปรดสังเกตที่เครื่องหมาย & ที่วางอยู่หน้าตัวแปรที่เป็นอาร์กิวเมนต์ของฟังก์ชัน การเรียกใช้ฟังก์ชันแบบ call-by-reference ช่วยให้เราสามารถผ่านตัวแปรไปยังฟังก์ชัน และให้ฟังก์ชันสามารถเปลี่ยนแปลงแก้ไขค่าของตัวแปรนั้นได้
ฟังก์ชั่นเหล่านี้จะมีประโยชน์ในทางจัดการทางด้าน directory เมื่อต้องการจัดการ กำหนดรูปแบบผ่าน Web Brownser


ฟังก์ชั่น

จุดมุ่งหมาย ความหมาย

Mkdir()

สร้าง Directory

Rmdir()

ลบ Directory

chdir

เมื่อต้องการเปลี่ยน directory

Dir()

ใช้สร้าง object เกียวกัน directory

Closedir()

ปิด directory

opendir()

เปิด directory

Readdir()

อ่านข้อมูลที่อยู่ใน Directory

Rewinddir()

เลือนตัวชี้เพื่อทำการเลือก ไฟล์หรือข้อมูลแรกของ Directory

มาดูตัวอย่างกันหน่อยครับ
Sample1.php เป็นการสร้าง Folder
<?
$path="C:\Appserv\www\";
$folder="Test";
$dir=$path.$folder;
$mode="w";
$create_folder=Mkdir($dir,$mode) or die ("ไม่สามารถสร้าง Folder $folder ได้");
?>
// เพิ่มเติม เราสามารถกำหนด $mode ของไฟล์ต่าง ๆ ได้ โดย

r เปิดดอ่านอย่างเดียว
r+ เปิดเพื่ออ่านและเขียน
w , w+ เปิดเพื่อเขียน ถ้าไม่มีไฟล์จะสร้างขึ้นไหม่ ถ้ามีอยู่แล้ว จะปรับไฟล์นั้นให้เป็น 0 Byte
a เปิดเพื่อเขียนอย่างเดียว

เพิ่มเติมครับ
สำหรับการลบ Folder ก็เหมือนกันครับ แค่เปลี่ยนตรง Mkdir เป็น Rmdir
Sample2.php เป็นการแสดงชื่อไฟล์ และ Folder
<?
$direc = dir("C:\Appserv\www\");
echo "แสดง Path : ".$direc ->path."<br>";
echo "รายการต่างใน Path ".$direc->path." มีดังนี้ <Br>";
while($show_dir=$direc -> read())
{
echo $show_dir."<br>";
}
$direc -> Close();
?>
// เพิ่มเติมครับ property และ method ของ dir()
Handle เก็บค่าของ Directory
Path เก็บรายชื่อของไฟล์และ Directory
Read อ่านชื่อไฟล์ และ Directory
Rewind เปลี่ยนจุดชี้ไปยัง ไฟล์หรือ Folder แรก
Close ปิดการติดต่อกับ Directory

ฟังก์ชั่น

จุดมุ่งหมาย ความหมาย

รูปแบบ

is_dir()

ตรวจสอบชื่อไฟล์นั้นเป็น ได้เรกรอรี่หรือไม่

is_dir(files-name)

is_executable()

ตรวจสอบว่าไฟล์นั้น เอ็กซิคิวส์ได้หรือไม่

is_executable(files_name)

is_file()

ตรวจสอบว่าไฟล์นั้นเป็นไฟล์ธรรมดาหรือไม่

is_file(files-name)

is_readable()

ตรวจสอบว่าไฟล์นั้นอ่านได้หรือไม่

is_readable(files-name)

is_writeable()

ตรวจสอบว่าไฟล์นั้นเขียนได้หรือไม่

is_writeable(files-name)

Readfile()

อ่านข้อมุลจากไฟล์โดยไม่ต้องเปิดไฟล์

Readfile(files-name)

Rename()

เปลี่ยนชื่อไฟล์

Rename(oldname,newname)

Rewind()

เลือนตัวชี้ไปยังตัวแรกหรือต้นของ ไดเรคทอรี่

Rewind(file-handdle)

Stat()

แสดงรายละเอียดของไฟล์

Stat(filename)

Touch()

กำหนดเวลาในการปรับแต่งไหล์

Touch(files-name,[time])

Unlink()

ลบไฟล์ที่ต้องการ

Unlink(files-name)

Basename()

แสดงชื่อไฟล์ไม่รวม path

Basename(path)

chgrp()

เปลี่ยนกลุ่มของไฟล์

Chgrp(files-name-group)

Chmod()

เปลี่ยนโหมดของไฟล์

Chmod(files-name,mode)

Clearstatcache()

Clear รายละเอียดต่างภายใน แคช

Clearstatcache()

Copy()

copy ไฟล์

Copy(ต้นทาง,ปลายทาง)

Dirname()

แสดงชื่อ Directory ไม่รวม path

Dirname(path)

Diskfreespace()

หาเนื้อที่ว่างใน Directory

Diskfreespace(directory)

Fclose()

ปิดไฟล์ที่เปิดอยู่

Fclose(file_handle)

Fwrite()

เขียนข้อความลงไฟล์

Fwrite(file_hand,text)

Ftell()

บอกต่ำแหน่งพอยเตอร์ที่อยู่ในไฟล์

Ftell(file-handle)

Fseek()

เลือกพอยเตอร์ไปข้างหน้า

Fseek(file_handle,offset)

Fread()

อ่านข้อมูลจากไฟล์ สามารถระบุจำนวนความยาวที่จะอ่านได้

Fread(file_handle,lenth)

Fputs()

เขียนข้อความลงไฟล์ ถ้าไฟล์มีอยู่แล้ว จะลบไฟล์เก่าและเขียนทับ

Fputs(files-name,text)

Fopen()

เปิดไฟล์

Fopen(files-name,mode)

Filetype()

ตรวจสอบประเภทไฟล์

Filetype(files-name)

Filesize()

ตรวจสอบขนาดไฟล์

Filesize(files-name)

Fileperms()

ตรวจสอบการกำหนดสิทธ์ของไฟล์

Fileperms(files-name)

Fileowner()

ตรวจสอบชื่อผู้สร้างไฟล์

Fileowner(files-name)

Filemtime()

ตรวจสอบว่า update ครั้งล่าสุดเมื่อใด

Filemtime(files-name)

Filegroup()

ตรวจสอบกลุ่มของไฟล์

Filegroup(files-name)

Filectime()

ตรวจสอบไฟล์ถูกสร้างเมื่อไหร่

Filectime(files-name)

Fileatime()

ตรวจสอบไฟล์ถูหใช้งานครั้งสุดท้ายเมื่อไหร่

Fileatime(files-name)

File_exists()

ตรวจสอบไฟล์นั้นมีอยู่จริงหรือไม่

File_exists(files-name)

File()

อ่านไฟล์แต่ละบรรทัดลงใน Array

File(files-name)

Fgetss()

อ่านข้อมูลแต่ละบรรทัดหรือแต่ละอักษร โดยตัด แท็ก Html ออก

Fgetss(file_handle,length)

Fgets()

อ่านข้อมูลแต่ละบรรทัดหรือแต่ละอักษร

Fgets(file_handle,length)

Fgetc()

อ่านข้อมูลที่ละอักษร

Fgetc(file_handle)

Feof()

ตรวจสอบว่า พอยเตอร์เลื่อนไปอยู่ท้ายไฟล์หรือไม่

Feof(file_handle)

มาดูตัวอย่างกันหน่อยครับ
Sample1.php เป็นการแสดงรายละเอียดต่าง ๆ ของไฟล์ index.html อยู่ใน Directory
C:\Appserv\www\index.html
<?
$files="C:\Appserv\www\index.html";
echo"<br>Dirname คือ ".Dirname($files);
echo"<br>Basename คือ ".Basename($files);
echo"<br>Filetype คือ ".Filetype($files);
echo"<br>Filesize คือ ".Filesize($files);
echo"<br>Fileperms คือ ".Fileperms($files);
echo"<br>Fileowner คือ ".Fileowner($files);
echo"<br>Filemtime คือ ".Filemtime($files);
echo"<br>Filegroup คือ ".Filegroup($files);
echo"<br>Filectime คือ ".Filectime($files);
echo"<br>Fileatime คือ ".Fileatime($files);
echo"<br>is_dir คือ ".is_dir($files);
echo"<br>is_file คือ ".is_file($files);
echo"<br>is_readable คือ ".is_readable($files);
echo"<br>is_writeableคือ ".is_writeable($files);
?>
Out Put




File


ตัวอย่างการสร้างไฟล์

<?
$FILE =fopen("thaicreate.txt","w");
fputs( $FILE, "Test Create File\n");
fclose($FILE);
echo " สร้างไฟล์สำเร็จ";
?>



ตัวอย่างต่อไปนี้เป็นการเปิดไฟล์ขึ้นมาจากนั้นให้เขียนต่อข้อมูลที่มีอยู่แล้ว
<?
$FILE =fopen("thaicreate.txt","a");
fputs( $FILE, "ในส่วนนี้เป็นการเขียนต่อจากข้อมูลเดิม\n");
fclose($FILE);
?>

ลองมาดูอีกตัวอย่างครับ


<?
//-----ThaiCreate.Com By @W_IN----//
$nome = "นายวีระชัย นุกิจรัมย์";
$address = "กรุงเทพมหานคร";
$email = "is_php@hotmail.com";
$desc.= " ชื่อ : $nome ";
$desc.= " ที่อยู่ : $address";
$desc.= " อีเมล์ : $email ";

$filename = "C:\ThaiCreate.txt";

if (!$filename = fopen($filename, "w")) {
echo "ไม่สามารถเขียนสร้างไฟล์ ($filename)";
exit;
}

if (!fwrite($filename, $desc)) {
print "ไม่สามารถเขียนข้อมูลลงไฟล์ ($filename)";
exit;
}
echo "เขียนข้อมูลลงไฟล์สำเร็จ";
fclose($filename);
?>


ตัวอย่างนี้เป็นการอ่านข้อมูลที่มีอยู่ใน text มาแสดง
<?
$FILE =fopen("thaicreate.txt","r");
while (!feof($FILE)) {
$text = fgets($FILE, 4096);
echo $text;
}
fclose($FILE);
?>
สิ่งที่ php ได้เปรียบกว่า asp อีกมุมหนึ่งก็คือ การส่งเมลล์ ซึ่ง php ได้เตียมฟังก์ชั่นสำหรับการส่งเมลล์ใว้ให้เรียบร้อยแล้วครับ สามารถนำไปใช้และส่งได้แบบง่าย ๆ
รูปแบบ
mail(To,Subject,Massage,From);
การส่งเมลล์แบบมี header
mail($email,$subject,$messages,$header);
ตัวอย่าง
$emailto='is_php@hotmail.com';
$email_from='webmaster@thaicreate.com';
$subject='ทดสอบการส่งเมลล์';
$header="from: $email_from";
$messages.= "สวัสดีครับ \n";
$messages.= "สบายดีหรือเปล่า \n";
$messages.= "ข้อความอื่น ๆ ";
mail($emailto,$subject,$messages,$header);
เมื่อ
To คือ email ของผู้รับ
Subject คือ หัวข้อชื่อเรื่ง
Massage คือ ข้อความรายละเอียด
From คือ header ที่จะใช้แทน sendmail_from เช่น อีเมลล์ผู้ส่ง สำเนา จะไม่มีก็ได้

Sample1.php
<?
$To="is_asp@hotmail.com";
$Subject="ทดสอบการส่งเมลล์";
$Massage="ทดสอบการส่งเมลล์ครับ ได้รับแล้วตอบด้วย";
$From="is_php@hotmail.com ";
mail($To,$Subject,$Massage,$From);
?>
** การส่งเมล์โดยให้สามารถแทรก html ได้
$emailto='is_php@hotmail.com';
$email_from='webmaster@thaicreate.com';
$subject='ทดสอบการส่งเมลล์';
$header.= "Content-type: text/html; charset=windows-874\n";
$header.="from: $email_from";
$messages.= "<b>สวัสดีครับ</br>";
$messages.= "สบายดีหรือเปล่า<br>";
$messages.= "ข้อความอื่น ๆ<br> ";
mail($emailto,$subject,$messages,$header);
หรือจะประยุกต็ใช้กับ Form ก็ได้ครับ
Sample2.php
<html>
<body bgcolor="#FFFFFF">
<p>ทดสอบการส่งเมลล์ครับ</p>
<form name="form1" method="post" action="Sample3.php">
อีเมลล์ผู้รับ
<input type="text" name="To">
<br>
ชื่อเรื่อง หัวข้อ
<input type="text" name="Subject">
<br>
ข้อความ
<textarea name="Massage" rows="5" cols="50"></textarea>
<br>
ผู้ส่ง
<input type="text" name="From">
<br>
<input type="submit" name="Submit" value="ส่งเมลล์">
</form>
</body>
</html>

Out Put

Sample3.php
<?
$send_mail=mail($To,$Subject,$Massage,$From);
if(!$send_mail)
{
echo"ยังไม่สามารถส่งเมลล์ได้ในขณะนี้";
}
else
{
echo "ส่งเมลล์สำเร็จ";
}
?>
Out Put

สำหรับฟังก์ชั่นเกี่ยวกับข้อความ PHP ได้เตรียมใว้เหมือนกันครับ สำหรับหากใครเคยเรียนภาษา C มาก่อนคงจะคุ้น ๆ ใช้ไหมครับ รูปแบบการใช้งานก็คล้ายๆ กับภาษา C ครับ เรามารู้จักฟังก์ชั่นที่จะสามารถนำไปใช้งานกันดีกว่าครับ

ฟังก์ชั่น

จุดมุ่งหมาย ความหมาย

strlen()

หาความยาวของข้อความ

strpos()

หาตำแหน่งข้อความที่ค้นพบอยู่ในขณะนั้น

strrchr()

ตัดข้อความจากตัวสุดท้ายที่พบจนถึงตัวท้ายสุด

str_repeat()

แสดงข้อความซ้ำ ๆ ตามความต้องการ

strrev()

เรียงสลับข้อความจากหลังไปหน้า

strrpos()

หาต่ำแหน่งสุดท้ายที่ค้นพบ

strstr()

ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่ค้นพบจนถึงตัวสุดท้าย

strtolower()

แปลงข้อความให้เป็นตัวพิมพ์เล็ก

strtoupder()

แปลงข้อความให้เป้นตัวพิมพ์ใหญ่

str_replace()

เปลี่ยนข้อความที่ค้นพบด้วยข้อความใหม่ที่ต้องการ

strtr()

แปลงตัวอักษรที่แน่นอน

substr()

ตัดตัวอักษรที่ต้องการใช้ออกมา

substr_replace()

เปลี่ยนข้อความภายในส่วนของข้อความ

trim()

ตัดช่องว่างด้านหน้าและด้านหลังข้อความ

ucfirst()

เปลี่ยนตัวอักษรตัวแรกของข้อความให้เป็นตัวพิมพ์ใหญ่

ucwords()

เปลี่ยนอักษรตัวแรกของแต่ละคำในข้อความ

stristr()

ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงตัวสุดท้าย ทั้งตัวพิมพ์เลก็กและพิมพ์ใหญ่

strip_tags()

ตัดแท็ก php และ Html ออกจากข้อความ

strchr()

ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงตัวสุดท้าย

sprintf()

ให้ค่าของข้อความที่มีรูปแบบ

similar_text()

คำนวณความเหมือนระหว่าง 2 ข้อความ

setlocale()

ปรับค่าข้อมูลท้องถิ่น

prinf()

แสดงผลข้อความที่มีรูปแบบ

prin()

แสดงผลข้อความ

parse_str()

รับค่าข้อความใว้ในตัวแปร

Ord()

แปลงตัวอักษรเป็นรหัส ASCII

ltrim()

ตัดข้อความด้านหน้าข้อความออกไป

join()

รวม Array เป็นข้อความ

implode()

รวม Array เป็นข้อความ

htmlspecialchars()

แสดงแท็ก Html

flush()

เคลียร์บัฟฟอร์

eregi_replace()

แทนที่ข้อความที่ค้นพบด้วยคำที่ต้องการ โดยไม่สนใจว่าจะเป็นตัวพิมพ์เล็กหรือใหญ่

ereg_replace()

แทนที่ข้อความที่พบด้วยคำที่ต้องการ

explode()

แยกข้อความโดยใช้เครื่องหมายแยก

echo()

แสดงผลข้อความ

Chr()

แปลงรหัส ASCII เป็นตัวอักษร

Chop()

ตัดช่องว่างท้ายข้อความออกไป

มาดูตัวอย่างประกอบกันหน่อยครับ
Sample1.php เป็นการหาความยาวของข้อความ
<?
$text="My Name is Werachai Nukitram";
echo"ความยาวเท่ากับ ".strlen($text)." ตัวอักษร";
?>
Out Put
ความยาวเท่ากับ 28 ตัวอักษร
Sample2.php เป็นการแสดงข้อความซ้ำหลายรอบ
<?
$text="อยากบอกรักคุณซะ 5 ครั้ง";
echo str_repeat($text,5);
?>
Out Put
อยากบอกรักคุณซะ 5 ครั้งอยากบอกรักคุณซะ 5 ครั้งอยากบอกรักคุณซะ 5 ครั้งอยากบอกรักคุณซะ 5 ครั้งอยากบอกรักคุณซะ 5 ครั้ง
Sample3.php เป็นการแปลงข้อความให้เป็นตัวพิมพ์ และ พิมพ์ใหญ่
<?
$text="My Name is Werachai Nukitram";
echo"ตัวพิมพ์เล็กจะได้ ".strtolower($text)."<br>";
echo"ตัวพิมพ์ใหญ่จะได้ ".strtoupper($text)."<br>";
?>
Out Put
ตัวพิมพ์เล็กเป็น my name is werachai nukitram
ตัวพิมพ์ใหญ่เป็น MY NAME IS WERACHAI NUKITRAM
Sample3.php เป็นการสลับข้อความจากด้านหน้ามาด้านหลัง
<?
$text="My Name is Werachai Nukitram";
echo"เรียวข้อความจากหลังไปหน้าจะได้ ".strrev($text)."<br>";
?>
Out Put
เรียงข้อความจากหลังไปหน้าจะได้ martikuN iahcareW si emaN yM
Sample4.php เป็นการหาต่ำแหน่งของข้อความที่ต้องการ
<?
$text="My Name is Werachai Nukitram";
echo"หาตำแหน่งตัวแรกที่ค้นพบ e อยู่ที่ ".strpos($text,e);
echo"<br>หาตำแหน่งตัวสุดท้ายที่ค้นพบ e อยู่ที่ ".strrpos($text,e);
?>
Out Put

หาตำแหน่งตัวแรกที่ค้นพบ e อยู่ที่ 6
หาตำแหน่งตัวสุดท้ายที่ค้นพบ e อยู่ที่ 12

TOP