ไฟล์ PHP () การจัดการและฟังก์ชั่น

⚡ สรุปอย่างชาญฉลาด

การประมวลผลไฟล์ใน PHP ใช้ฟังก์ชันในตัวมากมายเพื่อสร้าง อ่าน เขียน คัดลอก และลบไฟล์บนเซิร์ฟเวอร์ คู่มือนี้จะครอบคลุมฟังก์ชัน file_exists, fopen และโหมดต่างๆ, fwrite, fclose, fgets, copy, unlink และ file_get_contents พร้อมตัวอย่างการใช้งานจริง

  • 📄 ไฟล์ต่างๆ เก็บข้อมูลอะไรบ้าง: ไฟล์ใช้สำหรับจัดเก็บการตั้งค่า บันทึก และข้อมูลพื้นฐาน ทำให้เป็นตัวเลือกการจัดเก็บข้อมูลถาวรราคาประหยัดเมื่อเทียบกับฐานข้อมูล
  • 🔍 ตรวจสอบไฟล์: ฟังก์ชัน file_exists() จะตรวจสอบว่าไฟล์นั้นมีอยู่หรือไม่ก่อนที่คุณจะอ่านหรือสร้างไฟล์นั้น เพื่อหลีกเลี่ยงข้อผิดพลาด
  • 📂 การเปิดไฟล์: ฟังก์ชัน fopen() เปิดไฟล์ในโหมดต่างๆ เช่น r, w หรือ a ซึ่งควบคุมการอ่าน การเขียน และการเพิ่มข้อมูลต่อท้ายไฟล์
  • 🇧🇷 การเขียนและการปิดท้าย: ฟังก์ชัน fwrite() จะส่งข้อมูลไปยังตัวจัดการไฟล์ และฟังก์ชัน fclose() จะปล่อยตัวจัดการไฟล์เมื่อการทำงานเสร็จสิ้น
  • ???? การอ่านไฟล์: ฟังก์ชัน fgets() จะอ่านข้อมูลทีละบรรทัด ในขณะที่ฟังก์ชัน file_get_contents() จะส่งคืนไฟล์ทั้งหมดในรูปแบบสตริงเดียว
  • 🗂️ คัดลอกและลบ: ฟังก์ชัน copy() จะคัดลอกไฟล์ไปยังพาธใหม่ และฟังก์ชัน unlink() จะลบไฟล์ออกจากเซิร์ฟเวอร์อย่างถาวร
  • 🤖 AI ช่วยเหลือ: เครื่องมือ AI สามารถสร้างโค้ดสำหรับวิเคราะห์ไฟล์และแก้ไขข้อผิดพลาดเรื่องสิทธิ์การเข้าถึงหรือการเปิดสตรีมล้มเหลวได้อย่างรวดเร็ว

การประมวลผลไฟล์ PHP

ไฟล์คืออะไร?

ไฟล์เป็นเพียงทรัพยากรสำหรับจัดเก็บข้อมูลบนคอมพิวเตอร์

ไฟล์มักจะใช้เพื่อจัดเก็บข้อมูลเช่น:

  • การตั้งค่าคอนฟิกของโปรแกรม
  • ข้อมูลพื้นฐาน เช่น ชื่อผู้ติดต่อเทียบกับหมายเลขโทรศัพท์
  • รูปภาพ ภาพถ่าย และสื่ออื่นๆ ที่คล้ายคลึงกัน

รองรับรูปแบบไฟล์ PHP

ฟังก์ชันไฟล์ PHP รองรับรูปแบบไฟล์ที่หลากหลายซึ่งรวมถึง:

  • ไฟล์.txt
  • ไฟล์.log
  • นามสกุลไฟล์ที่กำหนดเอง เช่น file.xyz
  • ไฟล์.csv
  • ไฟล์ .gif, ไฟล์ .jpg และรูปแบบภาพที่คล้ายกัน

ไฟล์มีประโยชน์ในหลายสถานการณ์:

  • ระบบเหล่านี้มอบโซลูชันการจัดเก็บข้อมูลถาวรและคุ้มค่าสำหรับข้อมูลที่ไม่ซับซ้อน เมื่อเทียบกับฐานข้อมูลที่ต้องใช้ซอฟต์แวร์และทักษะอื่นๆ ในการจัดการระบบ DBMS
  • คุณต้องการจัดเก็บข้อมูลพื้นฐาน เช่น บันทึกการทำงานของเซิร์ฟเวอร์ เพื่อเรียกใช้และวิเคราะห์ในภายหลัง
  • คุณต้องการบันทึกการตั้งค่าโปรแกรม เช่น ไฟล์ program.ini

ฟังก์ชันไฟล์ PHP

PHP มีฟังก์ชันในตัวมากมายที่ช่วยให้การทำงานกับไฟล์สะดวกยิ่งขึ้น

Operaระบบ ting เช่น Windows และ macOS ไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก ในขณะที่ ลินุกซ์ or ยูนิกซ์ ระบบปฏิบัติการจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

การใช้หลักเกณฑ์การตั้งชื่อไฟล์ เช่น การใช้ตัวพิมพ์เล็กเท่านั้น เป็นวิธีปฏิบัติที่ดีที่ช่วยให้ไฟล์สามารถใช้งานร่วมกันได้บนแพลตฟอร์มต่างๆ อย่างสูงสุด

ต่อไปนี้เราจะมาดูฟังก์ชันไฟล์ PHP ที่ใช้กันบ่อยที่สุดกัน

ฟังก์ชั่น PHP file_exists()

ฟังก์ชั่นนี้ใช้เพื่อตรวจสอบว่ามีไฟล์อยู่หรือไม่

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

ฟังก์ชัน file_exists มีไวยากรณ์ดังต่อไปนี้

<?php
file_exists($filename);
?>

ที่นี่

  • “file_exists()” เป็นฟังก์ชัน PHP ที่จะคืนค่าเป็นจริงหากมีไฟล์อยู่ และคืนค่าเป็นเท็จหากไม่มีอยู่
  • “$filename” คือพาthและชื่อของไฟล์ที่จะตรวจสอบ

โค้ดด้านล่างใช้ฟังก์ชัน file_exists เพื่อตรวจสอบว่าไฟล์ my_settings.txt มีอยู่หรือไม่

<?php
if (file_exists('my_settings.txt'))
{
echo 'file found!';
}
else
{
echo 'my_settings.txt does not exist';
}
?>

บันทึกโค้ดด้านบนลงในไฟล์ชื่อ file_function.php สมมติว่าคุณบันทึกไฟล์ไว้ในโฟลเดอร์ phptuts ใน htdocs แล้ว ให้เปิดไฟล์นั้นขึ้นมา URL http://localhost/phptuts/file_function.php ในเบราว์เซอร์ของคุณ คุณจะได้รับผลลัพธ์ดังต่อไปนี้

ฟังก์ชั่น PHP file_exists()

ฟังก์ชั่น PHP fopen()

ฟังก์ชัน fopen ใช้สำหรับเปิดไฟล์ โดยมีไวยากรณ์ดังต่อไปนี้

<?php
fopen($file_name,$mode,$use_include_path,$context);
?>

ที่นี่

  • “fopen” เป็นฟังก์ชันเปิดไฟล์ PHP
  • “$file_name” คือชื่อของไฟล์ที่จะเปิด
  • “$mode” คือโหมดที่ควรใช้ในการเปิดไฟล์ ตารางด้านล่างแสดงโหมดต่างๆ
โหมด Descriptไอออน
r • อ่านไฟล์ตั้งแต่ต้น
• ส่งคืนค่า false หากไฟล์ไม่มีอยู่จริง
• อ่านเท่านั้น
r+ • อ่านไฟล์ตั้งแต่ต้น
• ส่งคืนค่า false หากไฟล์ไม่มีอยู่จริง
• อ่านและเขียน
w • เขียนลงไฟล์ตั้งแต่เริ่มต้น
• ตัดไฟล์ให้เหลือความยาวศูนย์
• หากไฟล์ไม่มีอยู่ ให้ลองสร้างไฟล์ขึ้นมา
• เขียนเท่านั้น
w+ • เขียนลงไฟล์ตั้งแต่เริ่มต้น ตัดทอนไฟล์ให้มีความยาวเป็นศูนย์
• หากไฟล์ไม่มีอยู่ ให้ลองสร้างไฟล์ขึ้นมา
• อ่านและเขียน
a • ผนวกเข้ากับไฟล์ในตอนท้าย
• หากไฟล์ไม่มีอยู่ ให้ลองสร้างไฟล์ขึ้นมา
• เขียนเท่านั้น
a+ • ผนวกเข้ากับไฟล์ในตอนท้าย
• หากไฟล์ไม่มีอยู่ ให้ลองสร้างไฟล์ขึ้นมา
• อ่านและเขียน
  • “$use_include_path” เป็นตัวเลือกเสริม ค่าเริ่มต้นคือ false หากตั้งค่าเป็น true ฟังก์ชันจะค้นหาใน include path ด้วย
  • “$context” เป็นตัวเลือกเสริม และสามารถใช้เพื่อระบุการรองรับบริบทได้

ฟังก์ชั่น PHP fwrite()

ฟังก์ชัน fwrite ใช้สำหรับเขียนข้อมูลลงไฟล์

มีรูปแบบประโยคดังนี้

<?php
fwrite($handle, $string, $length);
?>

ที่นี่

  • “fwrite” เป็นฟังก์ชัน PHP สำหรับการเขียนลงไฟล์
  • “$handle” เป็นทรัพยากรตัวชี้ไฟล์
  • “$string” คือข้อมูลที่จะเขียนลงในไฟล์
  • “$length” เป็นตัวเลือกเสริม และสามารถใช้เพื่อระบุความยาวไฟล์สูงสุดได้

ฟังก์ชั่น PHP fclose()

ฟังก์ชัน fclose() ใช้สำหรับปิดไฟล์ที่เปิดอยู่แล้วใน PHP

มีรูปแบบประโยคดังนี้

<?php
fclose($handle);
?>

ที่นี่

  • “fclose” คือ ฟังก์ชั่น PHP สำหรับการปิดไฟล์ที่เปิดอยู่
  • “$handle” เป็นทรัพยากรตัวชี้ไฟล์

ต่อไปนี้เราจะมาดูตัวอย่างการสร้างไฟล์ my_settings.txt โดยใช้ฟังก์ชัน fopen, fwrite และ fclose

โค้ดด้านล่าง “create_my_settings_file.php” ใช้ตัวอย่างข้างต้น

เปิดไฟล์
<?php

$fh = fopen("my_settings.txt", 'w')

or

die("Failed to create file"); ?>
การปิดไฟล์
<?php

fclose($fh);

?>
สร้างไฟล์
<?php

$fh = fopen("my_settings.txt", 'w') or die("Failed to create file");

$text = <<<_END

localhost;root;pwd1234;my_database

_END;

fwrite($fh, $text) or die("Could not write to file");

fclose($fh);

echo "File 1 written successfully"; ?>

การทดสอบรหัส

เปิด URL http://localhost/phptuts/create_my_settings.php ในเบราว์เซอร์ของคุณ

คุณจะได้รับหน้าต่อไปนี้

ฟังก์ชั่น PHP fclose

หมายเหตุ: หากดิสก์ของคุณเต็มหรือคุณไม่ได้รับอนุญาตให้เขียนไฟล์ คุณจะได้รับข้อความแสดงข้อผิดพลาด

สลับกลับไปที่ URL http://localhost/phptuts/file_function.phpคุณได้ผลลัพธ์อะไรบ้าง?

ฟังก์ชั่น PHP fgets()

ฟังก์ชัน fgets ใช้สำหรับอ่านไฟล์ PHP ทีละบรรทัด โดยมีไวยากรณ์พื้นฐานดังต่อไปนี้

<?php
fgets($handle);
?>

ที่นี่

  • "fgets" คือฟังก์ชัน PHP สำหรับอ่านบรรทัดในไฟล์
  • “$handle” เป็นทรัพยากรตัวชี้ไฟล์

ต่อไปนี้เราจะมาดูตัวอย่างการอ่านไฟล์ my_settings.txt โดยใช้ฟังก์ชัน fopen และ fgets กัน

รหัสด้านล่าง read_my_settings.php ใช้ตัวอย่างข้างต้น

<?php
$fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it");
$line = fgets($fh);
echo $line; fclose($fh);
?>

ที่นี่

  • ฟังก์ชัน “fopen” ส่งคืนตัวชี้ไปยังไฟล์ที่ระบุในเส้นทางของไฟล์
  • ฟังก์ชัน “die()” จะถูกเรียกใช้หากเกิดข้อผิดพลาด โดยจะแสดงข้อความแจ้งเตือนและหยุดการทำงานของสคริปต์

ฟังก์ชันคัดลอก PHP()

ฟังก์ชัน `copy` ของ PHP ใช้สำหรับคัดลอกไฟล์ โดยมีไวยากรณ์พื้นฐานดังต่อไปนี้

<?php
copy($file,$copied_file);
?>

ที่นี่

  • “$file” ระบุเส้นทางของไฟล์และชื่อของไฟล์ที่จะคัดลอก
  • “$copied_file” ระบุเส้นทางและชื่อของไฟล์ที่จะคัดลอก

รหัสด้านล่างแสดงให้เห็นถึงการใช้งาน

<?php
copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file");
echo "File successfully copied to 2";
?>

กำลังลบไฟล์

ฟังก์ชัน `unlink` ใช้สำหรับลบไฟล์ โค้ดด้านล่างแสดงตัวอย่างการใช้งาน

<?php
if (!unlink('my_settings_backup.txt'))
{
echo "Could not delete file";
}
else
{
echo "File 1 successfully deleted";
}
?>

ฟังก์ชั่น PHP file_get_contents()

ฟังก์ชัน file_get_contents ใช้เพื่ออ่านเนื้อหาไฟล์ทั้งหมด

ความแตกต่างระหว่าง file_get_contents และ fgets คือ file_get_contents จะส่งคืนข้อมูลไฟล์ในรูปแบบสตริง ในขณะที่ fgets จะอ่านไฟล์ทีละบรรทัด

รหัสด้านล่างแสดงให้เห็นถึงการใช้งาน

<?php
echo "<pre>"; // Enables display of line feeds
echo file_get_contents("my_settings.txt");
echo "</pre>"; // Terminates pre tag
?>

คู่มืออ้างอิงฉบับย่อเกี่ยวกับฟังก์ชันไฟล์ PHP

ตารางด้านล่างนี้สรุปฟังก์ชันไฟล์ที่กล่าวถึงในบทช่วยสอนนี้

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

คำถามที่พบบ่อย

fgets อ่านข้อมูลหนึ่งบรรทัดต่อการเรียกหนึ่งครั้ง fread อ่านข้อมูลจำนวนไบต์ที่กำหนดจากแฮนเดิลที่เปิดอยู่ และ file_get_contents อ่านไฟล์ทั้งหมดลงในสตริงในการเรียกครั้งเดียว โดยไม่จำเป็นต้องใช้ fopen หรือ fclose

คำสั่ง fwrite จะเขียนข้อมูลลงในไฟล์ที่เปิดอยู่แล้ว และต้องใช้คำสั่ง fopen และ fclose ครอบทับไว้ ในขณะที่คำสั่ง file_put_contents จะเปิด เขียน และปิดไฟล์ในครั้งเดียว ทำให้เป็นตัวเลือกที่สั้นกว่าสำหรับการเขียนข้อมูลแบบง่ายๆ

ใช้คำสั่ง `is_writable('file.txt')` เพื่อตรวจสอบสิทธิ์ในการเขียนก่อนเขียน และใช้คำสั่ง `file_exists()` เพื่อยืนยันว่าไฟล์นั้นมีอยู่จริง ในระบบ Unix สามารถใช้คำสั่ง `chmod()` เพื่อปรับสิทธิ์การเข้าถึงได้ หากเว็บเซิร์ฟเวอร์เป็นเจ้าของไฟล์นั้น

ใช่แล้ว อธิบายรูปแบบ เช่น CSV, JSON หรือรูปแบบบันทึกข้อมูล แล้ว AI จะสามารถสร้างโค้ดโดยใช้ fgetcsv, json_decode หรือลูปที่กำหนดเอง รวมถึงการจัดการข้อผิดพลาดสำหรับไฟล์ที่หายไปหรือผิดรูปแบบ ทดสอบด้วยข้อมูลจริงได้เลย

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

สรุปโพสต์นี้ด้วย: