วันอังคารที่ 2 ธันวาคม พ.ศ. 2557

3. การทำงานไฟล์ และไดเรคทอรี


               เมื่อทราบถึงไวยากรณ์เบื้องต้น การเข้าถึงและควบคุมข้อมูลภายในฟอร์ม HTML ต่อไปค้นหาวิธีการเก็บสารสนเทศเป็นไฟล์ข้อความ (text file) สำหรับการใช้ต่อไป โดยจะเป็นการเก็บและโหลดด้วยการเขียนลงไฟล์และอ่าน เมื่อมีปริมาณข้อมูลมากต้องใช้ระบบจัดการฐานข้อมูล เช่น MySQL



การเปิดไฟล์


               การเปิดไฟล์ใน PHP ใช้ฟังก์ชัน fopen ไฟล์ที่เปิดต้องระบุลักษณะการเปิดหรือโหมดไฟล์ (file mode)

โหมดไฟล์


                ระบบปฏิบัติการบนแม่ข่าย จำเป็นต้องทราบถึงการทำงานกับไฟล์ที่มีการเปิด โดยต้องทราบว่าถ้าไฟล์ได้รับการเปิดโดยอีกสคริปต์ ขณะที่มีการเปิดและทำงาน ถ้าผู้เปิด (เจ้าของสคริปต์) มีสิทธิในการทำงานนั้น

                โดยเฉพาะอย่างยิ่ง โหมดไฟล์ไห้กลไกกับระบบปฏิบัติการในการหาวิธีควบคุมการเข้าตามคำขอจากบุคคล หรือสคริปต์และวิธีการตรวจสอบการเข้าถึงและสิทธิกับไฟล์เฉพาะเจาะจง

ทางเลือกในการทำงานเมื่อเปิดไฟล์มี 3 ทางเลือก


  • เปิดไฟล์สำหรับอ่านอย่างเดียว เขียนอย่างเดียว หรือทั้งการอ่านและการเขียน

  • ถ้าเขียนไฟล์ อาจจะมีการเขียนทับข้อมูลเดิมของไฟล์ หรือเพิ่มข้อมูลต่อท้ายไฟล์

  • ถ้ากำลังพยายามเขียนไฟล์บนระบบที่ต่างกันระหว่างไฟล์ไบนารีกับไฟล์ข้อความ ควรระบุ

เปิดไฟล์สำหรับ FTP หรือ HTTP

  • นอกจากการเปิดไฟล์สำหรับการอ่านและเขียนแล้ว สามารถเปิดไฟล์ผ่าน FTP และ HTTP ด้วยฟังก์ชัน fopen()
  • ถ้าชื่อไฟล์เริ่มต้นด้วย ftp:// การเชื่อมต่อ FTP ในโหมด Passive จะได้รับการเปิดด้วยแม่ข่ายตามการระบุและพอยเตอร์เพื่อเริ่มต้นไฟล์ที่ส่งออก
  • ถ้าชื่อไฟล์เริ่มต้นด้วย http:// การเชื่อมต่อ HTTP จะได้รับการเปิดด้วยแม่ข่ายตามการระบุและพอยเตอร์ที่ตอบสนองการส่งออก เมื่อใช้โหมด HTTP ต้องมี slash ต่อท้ายบนชื่อไดเรคทอรี
  • เมื่อระบุตามรูปแบบหลัง (ไม่มี slash) แม่ข่ายเว็บ จะใช้ HTTP redirect เพื่อส่งไปยัง address แรก (มี slash) เหมือนความพยายามของ browser
  • ฟังก์ชัน fopen() ไม่สนับสนุน HTTPredirect ดังนั้นต้องระบุ URL ที่อ้างถึงไดเรคทอรีกับ slash ท้าย 
  • ชื่อโดเมนใน URL ไม่มีผลจากตัวพิมพ์ แต่พาร์ทและชื่อไฟล์มีผล


ปัญหาการเปิดไฟล์


             ถ้าการเรียก fopen() ล้มเหลว ฟังก์ชันจะส่งออก FALSE ทำให้สามารถทำงานกับความผิดพลาด แบบผู้ใช้คุ้นเคย (user-friendly) โดยการปิดข่าวสารผิดพลาดของ PHP และกำหนดคำอธิบายที่สื่อความหมายเอง

การปิดไฟล์


           เมื่อเสร็จสิ้นการใช้ไฟล์ ควรปิดไฟล์ด้วยฟังก์ชัน fclose ()
fclose ($fp);

            ฟังก์ชันนี้ส่งออก TRUE ถ้าปิดสำเร็จ หรือ FALSE ถ้าปิดไม่ได้ ความผิดพลาดโดยทั่วไปเกิดขึ้นน้อยกว่าการเปิดไฟล์ ดังนั้นในกรณีที่จึงเลือกไม่ทดสอบ

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

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