การอ้างอิงไฟล์และตำแหน่งเอกสาร

การอ้างอิงไฟล์และตำแหน่งเอกสาร ไดเรกทอรี ใน PHP มีดังนี้

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

การอ้างอิงถึง Document Root

เป็นการอ้างอิงไฟล์ไดเรกทอรี่แรกเริ่มต้นของเว็ปไซต์ ซึ่งขึ้นอยู่กับการตั้งค่าของผู้ดูแลระบบว่าอยู่ในตำแหน่งใด หากเราจำลองติดตั้งในเครื่องตัวเองด้วย AppServ ส่วนมากค่าดีฟอลต์ จะไปอยู่ที่ C:/AppServ/www จะเป็น root ของเว็ปไซต์เรา แต่หากเป็น URL ก็มักจะเป็น http://localhost

การอ้างอิง path แบบ absolute

จะเป็นการอ้างอิงถึงไฟล์ทุกๆไฟล์ที่เราจะนำมาใช้ โดยเริ่มต้นจาก doucument root เป็นหลักก่อนเสมอ ซึ่งนั่นทำให้การนำไปใช้เราจะเริ่มต้นอ้างอิงด้วยสัญลักษณ์ ” / ” ดังตัวอย่างนี้ <img src=”/phpmytest/img/logo.png”> แบบนี้ ระบบก็จะไปอ้างอิงนำไฟล์ภาพมาใช้ โดยเริ่มต้นที่ root ก่อนเลย แล้ววิ่งไล่มา path ที่เราระบุไว้

การอ้างอิง path แบบ relative

จะเป็นอีกหนึ่งวิธ๊ในการอ้างอิงไฟล์ โดยที่เทียบเคียงกับตำแหน่งไฟล์ที่เป็นเรียกไฟล์อื่นขึ้นมาเป็นหลัก โดยมีสัญลักษณ์ใช้เปรียบเทียบดังนี้

. จุด 1 จุด ใช้แทนไดเรทอรีปัจจุบัน

.. จุดสองจุด ใช้แทนไดรอทีก่อนหน้าของเรานี้ 1ระดับ

ลักษณะการทำงานจะเป็นแบบนี้ เช่นต้องการรูปภาพ logo.png มาแสดงที่เพจ test.html ที่ตอนนี้ใช้งานอยู่ จึงต้องอ้างอิงไฟล์ภาพถอยขึ้นไป 1 ระดับ <img src=”../img/logo.png”>

ฟังก์ชั่นเกี่ยวกับการแทรกไฟล์

คำสั่งนี้เป็นเรื่องจำเป็นมากๆ เราต้องแทรกไฟล์จากที่อื่นมาใช้ เช่น HTML, CSS, JAVASCRIPT หรือบาง PHP ก็ไม่ได้อยู่ในไฟล์เดียวกัน

include(file) เป็นฟังก์ชั่นในการแทรกไฟล์จากภายนอก โดยกำหนดชื่อไฟล์ (ถ้าเราเก็บไฟล์ไว้ในไดเรกทอรี่เดียวกัน) หรือกำหนดชื่อไฟล์ พร้อมตำแหน่งไฟล์ (หากเราเก็บไฟล์ไว้นอกไดเรกทอรี่ที่ทำงานอยู่)

include_once(file) เช่นเดียวกับ include การทำงานเหมือนกัน แต่แทรกเพียงครั้งเดียว ไม่แทรกซ้ำหากมีการเคยเรียกใช้แล้ว

require(file) เป็นแทรกไฟล์เหมือน include แต่ว่าเป็นนข้อบังคับ require ว่าต้องแทรกมาเสมอ ถึงแม้ว่าจะเกิด error หรือข้อผิดพลาดใดๆ

require_one(file) เป็นการแทรกเหมือน require แต่แทรกเพียงครั้งเดียว

Posted by adminone