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

File


บทเรียนนี้จะอธิบายคร่าวๆ เกี่ยวกับการใช้ฟังก์ชั่นหลักๆ ของไฟล์เท่านั้น

การเปิดไฟล์

ในการอ่านข้อมูลจากไฟล์ หรือบันทึกข้อมูลลงไฟล์ ต้องเริ่มจากการเปิดไฟล์ขึ้นมาก่อน โดยใช้ฟังก์ชั่น fopen()

ฟังก์ชั่นนี้บรรจุพารามิเตอร์ 2 ตัว ตัวแรก คือ ชื่อไฟล์ ส่วนตัวที่สอง คือ โหมดที่ใช้ในการเปิดไฟล์
<html>
<body>
<?php
$f=fopen("welcome.txt","r");
?>
</body>
</html>
ไฟล์สามารถเปิดได้หลายโหมด ดังนี้

File ModeDescription
rอ่านได้อย่างเดียว ตัวชี้จะอยู่ที่ตำแหน่งเริ่มต้นของไฟล์
r+อ่านและเขียนไฟล์ ตัวชี้จะอยู่ที่ตำแหน่งเริ่มต้นของไฟล์
wเขียนได้อย่างเดียว ตัวชี้จะอยู่ที่ตำแหน่งเริ่มต้นของไฟล์ ถ้าไฟล์มีอยู่แล้วจะตัดข้อมูลเดิมทั้งทั้งหมด แต่ถ้าไม่มีไฟล์นี้อยู่จะสร้างไฟล์ขึ้นมาใหม่
w+อ่านและเขียนไฟล์ ตัวชี้จะอยู่ที่ตำแหน่งเริ่มต้นของไฟล์ ถ้าไฟล์มีอยู่แล้วจะตัดข้อมูลเดิมทั้งทั้งหมด แต่ถ้าไม่มีไฟล์นี้อยู่จะสร้างไฟล์ขึ้นมาใหม่
aเขียนได้อย่างเดียว ตัวชี้จะอยู่ที่ตำแหน่งสิ้นสุดของไฟล์ ถ้าไม่มีไฟล์นี้อยู่จะสร้างไฟล์ขึ้นมาใหม่
a+อ่านและเขียนไฟล์ ตัวชี้จะอยู่ที่ตำแหน่งสิ้นสุดของไฟล์ ถ้าไม่มีไฟล์นี้อยู่จะสร้างไฟล์ขึ้นมาใหม่
xสร้างและเปิดไฟล์ขึ้นมาเพื่อเขียน ตัวชี้จะอยู่ที่ตำแหน่งเริ่มต้นของไฟล์ ถ้าไฟล์มีอยู่แล้วจะเกิด error แต่ถ้าไม่มีไฟล์นี้อยู่จะสร้างไฟล์ขึ้นมาใหม่
x+สร้างและเปิดไฟล์ขึ้นมาเพื่ออ่านกับเขียน ตัวชี้จะอยู่ที่ตำแหน่งเริ่มต้นของไฟล์ ถ้าไฟล์มีอยู่แล้วจะเกิด error แต่ถ้าไม่มีไฟล์นี้อยู่จะสร้างไฟล์ขึ้นมาใหม่
ถ้าฟังก์ชั่น fopen() ไม่สามารถเปิดไฟล์ที่ต้องการขึ้นมากได้ มันจะให้ค่ากลับมาเป็น 0 หรือ false ดูตัวอย่างเพื่อป้องกันการเกิดข้อผิดพลาด
<html>
<body>
<?php
$f=fopen("welcome.txt","r") or exit("ไม่สามารถเปิดไฟล์ได้ !");
?>
</body>
</html>

การปิดไฟล์
การปิดไฟล์จะใช้ฟังก์ชั้น fclose() จะมีพารามิเตอร์เดียว คือ ชื่อไฟล์

fclose($f);

การอ่านไฟล์
หลังจากเปิดไฟล์ขึ้นมาแล้ว เรามักจะใช้ฟังก์ชั่น feof() เพื่อตรวจสอบข้อมูลในไฟล์ที่จะอ่านว่าหมดแล้วหรือยัง

ฟังก์ชั่นนี้ไม่สามารถใช้ได้กับโหมด w, a และ x

if (feof($f))
echo "สิ้นสุดไฟล์แล้ว";
การอ่านไฟล์ทีละตัวอักษร
ฟังก์ชั่น fgetc() จะใช้อ่านทีละตัวอักษรจากไฟล์ หลังจากเรียกใช้ฟังก์ชั่นนี้ ตัวชี้จะเลื่อนตัวอักษรไปตัวถัดไป มาดูตัวอย่างกัน

<?php
$f=fopen("welcome.txt","r") or exit("ไม่สามารถเปิดไฟล์ได้ !");
while (!feof($f)) 
{ 
$x=fgetc($f); 
echo $x;
}
fclose($f);
?>

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

แสดงความคิดเห็น