folder-arrow-downFile Open/Read

นรินทร์ ศรีมังกร 640710140

การเปิดและอ่านไฟล์ใน PHP (File Open/Read)

คือ การจัดการไฟล์ใน PHP เป็นพื้นฐานที่สำคัญมากในการจัดการข้อมูลที่อยู่ภายนอกโปรแกรม เช่น ไฟล์ข้อมูลที่ถูกเก็บไว้ในเครื่องหรือเซิร์ฟเวอร์ ฟังก์ชันที่เรามักใช้ในการทำงานกับไฟล์ ได้แก่:

  • fopen(): ใช้สำหรับเปิดไฟล์ หากเปิดได้สำเร็จจะคืนค่าเป็นตัวชี้ไฟล์ (file pointer) ที่สามารถนำไปใช้กับฟังก์ชันอื่น ๆ ได้

  • fread(): ใช้สำหรับอ่านข้อมูลจากไฟล์ โดยต้องระบุว่าต้องการอ่านข้อมูลเท่าไหร่

  • fclose(): ใช้สำหรับปิดไฟล์หลังจากที่เราใช้งานเสร็จ

  • fgets(): ใช้สำหรับอ่านข้อมูลจากไฟล์ทีละบรรทัด

  • feof(): ใช้ตรวจสอบว่าถึงจุดสิ้นสุดของไฟล์แล้วหรือยัง (EOF - End of File)

  • fgetc(): ใช้สำหรับอ่านไฟล์ทีละตัวอักษร

แต่ละฟังก์ชันจะมีลักษณะการใช้งานเฉพาะตัว ซึ่งจะช่วยให้เราจัดการข้อมูลจากไฟล์ได้อย่างมีประสิทธิภาพตามที่ต้องการ

1. การเปิดไฟล์ใน PHP - fopen()

ฟังก์ชัน fopen() ใน PHP เป็นฟังก์ชันพื้นฐานที่ใช้สำหรับเปิดไฟล์หรือ URL ซึ่งจะสร้าง "สตรีม" (stream) เพื่อเชื่อมต่อไฟล์กับโปรแกรม ฟังก์ชันนี้จำเป็นต้องใช้พารามิเตอร์ 2 ตัว คือ:

  • ชื่อไฟล์ (filename): คือ ไฟล์ที่เราต้องการเปิด เช่น example.txt

  • โหมด (mode): ใช้ระบุว่าเราต้องการเปิดไฟล์ในลักษณะใด เช่น เปิดเพื่ออ่าน, เขียน, หรืออ่านและเขียนพร้อมกัน

โหมดการเปิดไฟล์ (File Modes)

เมื่อเราเปิดไฟล์ด้วยฟังก์ชัน fopen() ใน PHP ต้องระบุโหมดในการเปิดไฟล์ ซึ่งแต่ละโหมดจะมีความหมายและการทำงานที่แตกต่างกันออกไป ดังนี้:

โหมด
คำอธิบาย

r

เปิดไฟล์เพื่ออ่านข้อมูลเท่านั้น ตัวชี้ไฟล์จะเริ่มที่จุดเริ่มต้นของไฟล์

r+

เปิดไฟล์เพื่อทั้งอ่านและเขียน ตัวชี้ไฟล์จะเริ่มที่จุดเริ่มต้นของไฟล์

w

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

w+

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

a

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

a+

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

x

สร้างไฟล์ใหม่และเปิดเพื่อเขียนเท่านั้น ตัวชี้ไฟล์จะเริ่มที่จุดเริ่มต้นของไฟล์ ถ้าไฟล์มีอยู่แล้ว จะเปิดไฟล์ไม่ได้ (fopen() จะคืนค่า FALSE)

x+

คล้ายกับโหมด x แต่เปิดไฟล์เพื่อทั้งอ่านและเขียน

c

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

c+

คล้ายกับโหมด c แต่เปิดไฟล์เพื่อทั้งอ่านและเขียน

ตัวอย่าง Syntax

ตัวอย่าง Code

2. การอ่านไฟล์ใน PHP - fread()

ฟังก์ชัน fread() ใน PHP เป็นฟังก์ชันที่ใช้สำหรับอ่านข้อมูลจากไฟล์ที่เปิดอยู่ โดยฟังก์ชันนี้สามารถอ่านข้อมูลได้สูงสุดถึงจำนวนไบต์ที่เรากำหนด ซึ่งจะอ่านข้อมูลจากตำแหน่งปัจจุบันของตัวชี้ไฟล์ (file pointer) ไปยังไฟล์ที่เราเปิดอยู่

ตัวอย่าง Syntax

ตัวอย่าง Code

3. การปิดไฟล์ใน PHP - fclose()

ฟังก์ชัน fclose() ใน PHP เป็นฟังก์ชันที่ใช้สำหรับปิดไฟล์ที่เราได้เปิดอยู่ก่อนหน้านี้ โดยจะทำงานกับตัวชี้ไฟล์ (file pointer) ที่ได้จากการเปิดไฟล์ด้วยฟังก์ชัน fopen() ซึ่งการปิดไฟล์เป็นสิ่งที่สำคัญเพื่อให้ระบบสามารถจัดการทรัพยากรได้อย่างมีประสิทธิภาพ

ตัวอย่าง Syntax

ตัวอย่าง Code

4. การอ่านบรรทัดเดียวในไฟล์ - fgets()

ฟังก์ชัน fgets() ใน PHP เป็นเครื่องมือที่ใช้ในการอ่านข้อมูลจากไฟล์ทีละบรรทัด ซึ่งเหมาะสำหรับการทำงานกับไฟล์ที่มีข้อมูลเป็นข้อความในรูปแบบบรรทัด การทำงานของฟังก์ชันนี้จะอ่านข้อมูลจากไฟล์จนกว่าจะถึงจุดสิ้นสุดของบรรทัด

ตัวอย่าง Syntax

ตัวอย่าง Code

5. การตรวจสอบจุดสิ้นสุดของไฟล์ - feof()

ฟังก์ชัน feof() ใน PHP เป็นฟังก์ชันที่ใช้ตรวจสอบว่าถึงจุดสิ้นสุดของไฟล์ (EOF: End-of-File) หรือไม่ ซึ่งเป็นเครื่องมือที่มีประโยชน์มากในกรณีที่เราต้องการวนลูปอ่านข้อมูลจากไฟล์ที่มีความยาวไม่แน่นอนจนกว่าจะถึงจุดสิ้นสุดของไฟล์

ตัวอย่าง Syntax

ตัวอย่าง Code

6. การอ่านตัวอักษรเดียวจากไฟล์ - fgetc()

ฟังก์ชัน fgetc() ใน PHP ใช้ในการอ่านข้อมูลจากไฟล์ทีละตัวอักษร (character) โดยจะอ่านเพียงหนึ่งตัวอักษรในแต่ละครั้งที่เรียกใช้ฟังก์ชันนี้ ฟังก์ชันนี้มีประโยชน์มากสำหรับการประมวลผลข้อมูลที่ต้องการอ่านไฟล์ทีละตัวอักษร ซึ่งสามารถใช้ในกรณีที่ต้องการจัดการหรือวิเคราะห์ข้อมูลในลักษณะที่ละเอียดมากขึ้น

ตัวอย่าง Syntax

ตัวอย่าง Code

เปรียบเทียบกับภาษา Java/C/Python

คุณสมบัติ
PHP
Java
C
Python

ฟังก์ชันที่ใช้

fopen(), fread(), fclose(), fgets(), feof(), fgetc()

FileReader, BufferedReader, FileInputStream

fopen(), fread(), fclose(), fgets(), feof(), fgetc()

open(), read(), readline(), close()

การเปิด/ปิดไฟล์

เปิดและปิดไฟล์ได้ง่ายผ่านฟังก์ชัน

ใช้ออบเจ็กต์ในการจัดการไฟล์

เปิดและปิดไฟล์ได้ง่ายผ่านฟังก์ชัน

เปิดและปิดไฟล์ได้ง่ายผ่าน with

การอ่านข้อมูล

อ่านได้ทั้งแบบทีละไบต์, ตัวอักษร, หรือบรรทัด

อ่านได้ทั้งแบบทีละไบต์, ตัวอักษร, หรือบรรทัด

อ่านได้ทั้งแบบทีละไบต์, ตัวอักษร, หรือบรรทัด

อ่านได้ทั้งแบบทีละไบต์, ตัวอักษร, หรือบรรทัด

ความซับซ้อน

ใช้งานง่าย ไม่ซับซ้อน

ซับซ้อนพอสมควร

ใช้งานง่าย ไม่ซับซ้อน

ใช้งานง่าย ไม่ซับซ้อน

คลิปนำเสนอ

presentation

แหล่งที่มาอ้างอิง

> สำหรับ กำหนดหัวข้อเนื้อหา และความหมาย

W3Schools. (2024). PHP file open. W3Schoolsarrow-up-right PHP.net. (2024). function. PHP.netarrow-up-right

> สำหรับ โหมดการเปิดไฟล์ และความหมาย

JavaTpoint. (2024). PHP open file. JavaTpointarrow-up-right

> สำหรับ โค้ดภาษา php

GeeksforGeeks. (2024). PHP Basics – File Handling. GeeksforGeeksarrow-up-right The PHP Group. (2024). function. PHP Manualarrow-up-right

> สำหรับ โค้ดภาษา java

GeeksforGeeks. (2024). BufferedReader read() method in Java with examples. GeeksforGeeksarrow-up-right Selawsky, J. (2024). BufferedReader and BufferedWriter. JavaRusharrow-up-right DigitalOcean. (2024). How to open a file in Java. DigitalOceanarrow-up-right

> สำหรับ โค้ดภาษา c

TutorialsPoint. (2024). C library - fgetc() function. TutorialsPointarrow-up-right

> สำหรับ โค้ดภาษา python

GeeksforGeeks. (2024). Python program to read character by character from a file. GeeksforGeeksarrow-up-right Quora. (2024). How do you check for end of file in Python?. Quora. Quoraarrow-up-right W3Schools. (2024). Python file readline() method. W3Schoolsarrow-up-right

Last updated