PHP - ไฟล์และ I / O
บทนี้จะอธิบายฟังก์ชันต่อไปนี้ที่เกี่ยวข้องกับไฟล์ -
- การเปิดไฟล์
- กำลังอ่านไฟล์
- การเขียนไฟล์
- การปิดไฟล์
การเปิดและปิดไฟล์
PHP fopen()ฟังก์ชันนี้ใช้เพื่อเปิดไฟล์ ต้องมีสองอาร์กิวเมนต์ที่ระบุชื่อไฟล์ก่อนจากนั้นจึงใช้โหมดที่จะใช้งาน
โหมดไฟล์สามารถระบุเป็นหนึ่งในหกตัวเลือกในตารางนี้
ซีเนียร์ No | โหมดและวัตถุประสงค์ |
---|---|
1 |
r เปิดไฟล์เพื่ออ่านอย่างเดียว วางตัวชี้ไฟล์ที่จุดเริ่มต้นของไฟล์ |
2 |
r+ เปิดไฟล์เพื่ออ่านและเขียน วางตัวชี้ไฟล์ที่จุดเริ่มต้นของไฟล์ |
3 |
w เปิดไฟล์สำหรับเขียนเท่านั้น วางตัวชี้ไฟล์ที่จุดเริ่มต้นของไฟล์ และตัดทอนไฟล์ให้มีความยาวเป็นศูนย์ หากไฟล์ไม่มี มีอยู่แล้วมันจะพยายามสร้างไฟล์ |
4 |
w+ เปิดไฟล์สำหรับอ่านและเขียนเท่านั้น วางตัวชี้ไฟล์ที่จุดเริ่มต้นของไฟล์ และตัดทอนไฟล์ให้มีความยาวเป็นศูนย์ หากไฟล์ไม่มี มีอยู่แล้วมันจะพยายามสร้างไฟล์ |
5 |
a เปิดไฟล์สำหรับเขียนเท่านั้น วางตัวชี้ไฟล์ไว้ที่ท้ายไฟล์ หากไม่มีไฟล์ก็จะพยายามสร้างไฟล์ |
6 |
a+ เปิดไฟล์สำหรับอ่านและเขียนเท่านั้น วางตัวชี้ไฟล์ไว้ที่ท้ายไฟล์ หากไม่มีไฟล์ก็จะพยายามสร้างไฟล์ |
หากความพยายามในการเปิดไฟล์ล้มเหลว fopen ส่งคืนค่าเป็น false มิฉะนั้นจะส่งกลับไฟล์ file pointer ซึ่งใช้สำหรับการอ่านเพิ่มเติมหรือเขียนไปยังไฟล์นั้น
หลังจากทำการเปลี่ยนแปลงกับไฟล์ที่เปิดแล้วสิ่งสำคัญคือต้องปิดด้วยไฟล์ fclose()ฟังก์ชัน fclose() ฟังก์ชันต้องการตัวชี้ไฟล์เป็นอาร์กิวเมนต์แล้วส่งกลับ true เมื่อการปิดสำเร็จหรือ false ถ้ามันล้มเหลว
กำลังอ่านไฟล์
เมื่อเปิดไฟล์โดยใช้ไฟล์ fopen() สามารถอ่านได้ด้วยฟังก์ชันที่เรียกว่า fread(). ฟังก์ชันนี้ต้องการสองอาร์กิวเมนต์ สิ่งเหล่านี้ต้องเป็นตัวชี้ไฟล์และความยาวของไฟล์ที่แสดงเป็นไบต์
ความยาวไฟล์สามารถพบได้โดยใช้ไฟล์ filesize() ซึ่งใช้ชื่อไฟล์เป็นอาร์กิวเมนต์และส่งกลับขนาดของไฟล์ที่แสดงเป็นไบต์
ต่อไปนี้เป็นขั้นตอนที่จำเป็นในการอ่านไฟล์ด้วย PHP
เปิดไฟล์โดยใช้ fopen() ฟังก์ชัน
รับความยาวของไฟล์โดยใช้ filesize() ฟังก์ชัน
อ่านเนื้อหาของไฟล์โดยใช้ fread() ฟังก์ชัน
ปิดไฟล์ด้วย fclose() ฟังก์ชัน
ตัวอย่างต่อไปนี้กำหนดเนื้อหาของไฟล์ข้อความให้กับตัวแปรจากนั้นแสดงเนื้อหาเหล่านั้นบนเว็บเพจ
<html>
<head>
<title>Reading a file using PHP</title>
</head>
<body>
<?php
$filename = "tmp.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "<pre>$filetext</pre>" );
?>
</body>
</html>
มันจะให้ผลลัพธ์ดังต่อไปนี้ -
การเขียนไฟล์
สามารถเขียนไฟล์ใหม่หรือต่อท้ายข้อความกับไฟล์ที่มีอยู่โดยใช้ PHP fwrite()ฟังก์ชัน ฟังก์ชันนี้ต้องการสองอาร์กิวเมนต์ที่ระบุ afile pointerและสตริงข้อมูลที่จะเขียน สามารถเลือกอาร์กิวเมนต์จำนวนเต็มสามเพื่อระบุความยาวของข้อมูลที่จะเขียน หากรวมอาร์กิวเมนต์ที่สามการเขียนจะหยุดลงหลังจากถึงความยาวที่ระบุแล้ว
ตัวอย่างต่อไปนี้จะสร้างไฟล์ข้อความใหม่จากนั้นเขียนส่วนหัวของข้อความสั้น ๆ ไว้ด้านใน หลังจากปิดไฟล์นี้การมีอยู่จะได้รับการยืนยันโดยใช้file_exist() ฟังก์ชันที่ใช้ชื่อไฟล์เป็นอาร์กิวเมนต์
<?php
$filename = "/home/user/guest/newfile.txt";
$file = fopen( $filename, "w" );
if( $file == false ) {
echo ( "Error in opening new file" );
exit();
}
fwrite( $file, "This is a simple test\n" );
fclose( $file );
?>
<html>
<head>
<title>Writing a file using PHP</title>
</head>
<body>
<?php
$filename = "newfile.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "$filetext" );
echo("file name: $filename");
?>
</body>
</html>
มันจะให้ผลลัพธ์ดังต่อไปนี้ -
เราได้กล่าวถึงฟังก์ชันทั้งหมดที่เกี่ยวข้องกับการป้อนไฟล์เข้าและออกในบทPHP File System Function