File Helper
ไฟล์ File Helper มีฟังก์ชันช่วยเหลือที่ทำงานกับไฟล์
เรียกใช้งานผู้ช่วยนี้
ผู้ช่วยนี้จะถูกเรียกใช้งานได้จากโค้ดต่อไปนี้
$this->load->helper('file');
มีฟังก์ชันที่ใช้งานได้ดังนี้
read_file('path')
คืนข้อมูลที่อยู่ในไฟล์ในตำแหน่งที่กำหนดให้ ตัวอย่างเช่น
$string = read_file('./path/to/file.php');
โดยตำแหน่งเส้นทางนั้นสามารถเป็นแบบความสัมพันธ์หรือเส้นทางแบบเต็มเซิร์ฟเวอร์ได้ โดยคืนค่า FALSE (ตรรกะ) ถ้าเกิดข้อผิดพลาด
ข้อสังเกตุ: ตำแหน่งเส้นทางแบบสัมพันธ์ จะสัมพันธ์กับไฟล์ไซต์ index.php หลักของไดเรคทอรี่ ไม่ใช่ตัวควบคุม(controller) หรือส่วนแสดง(view) CodeIgniter ใช้ตัวควบคุมด้านหน้า ดังนั้นเส้นทางจะสัมพันธ์กับ index เสมอ
ถ้าเซิร์ฟเวอร์ของคุณเปิดข้อจำกัด open_basedir ฟังก์ชันนี้อาจจะไม่ทำงานถ้าคุณพยายามจะเรียกไฟล์สคริปด้านบนนี้
write_file('path', $data)
เขียนข้อมูลลงไปในเส้นทางที่กำหนด ถ้าไม่มีไฟล์อยู่จะสร้างขึ้นให้ ตัวอย่างเช่น
$data = 'Some file data';
if ( ! write_file('./path/to/file.php', $data))
{
echo 'Unable to write the file';
}
else
{
echo 'File written!';
}
คุณสามารถตั้งค่าการเขียนได้จากพารามิเตอร์ที่สาม
write_file('./path/to/file.php', $data, 'r+');
โหมดโดยปกติคือ wb กรุณาดูคู่มือการใช้งาน PHP สำหรับโหมดต่างๆ
ข้อสังเกตุ: ในการใช้ฟังก์ชันนี้เขียนข้อมูลไปยังไฟล์ ไฟล์นั้นจะต้องตั้งค่าความยินยอม(permission) ให้ถูกเขียนได้ (666, 777, ฯลฯ) ถ้ายังไม่มีไฟล์ ไดเรคทอรี่จะต้องสามารถถูกเขียนได้ (ถึงจะสร้างไฟล์ใหม่ให้ได้)
ข้อสังเกตุ: ตำแหน่งเส้นทางแบบสัมพันธ์ จะสัมพันธ์กับไฟล์ไซต์ index.php หลักของไดเรคทอรี่ ไม่ใช่ตัวควบคุม(controller) หรือส่วนแสดง(view) CodeIgniter ใช้ตัวควบคุมด้านหน้า ดังนั้นเส้นทางจะสัมพันธ์กับ index เสมอ
delete_files('path')
ลบไฟล์ทั้งหมดที่อยู่ในไดเรคทอรี่ที่กำหนด ตัวอย่างเช่น
delete_files('./path/to/directory/');
ถ้าพารามิเตอร์ที่สองถูกตั้งเป็น true ไดเรคทอรี่ใดๆที่อยู่ภายในไดเรคทอรี่ที่กำหนด จะถูกลบไปด้วยตัวอย่างเช่น
delete_files('./path/to/directory/', TRUE);
ข้อสังเกตุ: ไฟล์เหล่านั้นจะต้องถูกเขียนได้หรือมีสิทธิจากระบบในการที่จะลบไฟล์
get_filenames('path/to/directory/')
นำเส้นทางแบบเซิร์ฟเวอร์มาเป็นค่านำเข้าและคืนค่าอาเรย์ที่มีชื่อไฟล์ทั้งหมดในไดเรคทอรี่นั้น เส้นทางไฟล์นั้นสามารถถูกเพิ่มไปในชื่อไฟล์ที่ส่งกลับมาได้โดยเปลี่ยนค่าที่สองเป็น TRUE
get_dir_file_info('path/to/directory/')
อ่านไดเรคทอรี่ที่กำหนดและสร้างอาเรย์ที่ประกอบด้วยชื่อไฟล์ , ขนาดไฟล์, วันเวลา, และความยินยอม(permission) โฟลเดอร์ย่อยที่อยู่ในนั้นจะถูกอ่านมาด้วยเช่นกัน
get_file_info('path/to/file', $file_information)
ใส่ตำแหน่งไฟล์ โดยคืนค่าเป็น ชื่อ, ตำแหน่งเส้นทาง, ขนาด, วันเวลที่เกิดการเปลี่ยนแปลง โดยพารามิเตอร์ที่สองยอมให้คุณประกาศแน่ชัดว่าต้องการข้อมูลไหนที่จะถูกส่งกลับไป มีทางเลือกดังนี้ name(ชื่อ), server_path(เส้นทางบนเซิร์ฟเวอร์), size(ขนาด), date(วันเวลา), readable(เขียนได้ไหม), writable(อ่านได้ไหม), executable(ดำเนินการได้ไหม), fileperms(ค่ายินยอม) คืนค่าเป็น FALSE ถ้าไม่พบไฟล์
ข้อสังเกตุ: แบบ "writable" ใช้ฟังก์ชันของ PHP คือ is_writable() ซึ่งมีปัญหาบนเว็บเซิร์ฟเวอร์แบบ IIS โดยคุณอาจจะพิจารณาใช้ fileperms แทนซึ่งส่งข้อมูลกลับมาจากฟังก์ชัน PHP ที่ชื่อ fileperms()
get_mime_by_extension('file')
แปลงนามสกุลไฟล์ ไปอยู่ในแบบ mime type โดยอิงจาก config/mimes.php คืนค่า FALSE ถ้ามันไม่สามารถระบุประเภทหรือเปิดไฟล์ mime ไม่ได้
$file = "somefile.png";
echo $file . ' is has a mime type of ' . get_mime_by_extension($file);
ข้อสังเกตุ: นี้ไม่ใช่ทางที่ถูกต้องว่าไฟล์จะเป็น mime type แบบใดแต่มันเป็นความสะดวก มันไม่ควรถูกใช้ในเรื่องความปลอดภัย
symbolic_permissions($perms)
นำค่ายินยอมแบบตัวเลข (อย่างเช่นค่าที่คืนมาจาก fileperms() ) และคืนค่าเป็นเครื่องหมายแบบมาตรฐานของค่ายินยอมไฟล์แทน
echo symbolic_permissions(fileperms('./index.php'));
// -rw-r--r--
octal_permissions($perms)
นำค่าตัวเลขของค่ายินยอม (อย่างเช่นค่าที่คืนมาจาก fileperms() ) และคืนค่าเป็นตัวอักษรฐาน 8 เป็นจำนวน 3 ตัวสำหรับค่ายินยอม
echo octal_permissions(fileperms('./index.php'));
// 644