วันเสาร์ที่ 10 พฤศจิกายน พ.ศ. 2555

PHP - การรวมไฟล์ PHP เข้าด้วยกัน


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



ฟังก์ชัน include()

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


ฟังก์ชั่น Include_once()

จะเป็นการทำงานที่เหมือน include() เพียงแต่ว่า มันจะเรียกเข้ามาครั้งเดียวเท่านั้น สมมุติว่าเราใส่ Include_once() ไว้ใน Loop แล้วให้มันใช้ฟังก์ชั่นนี้ซ้ำ ๆ มันจะเรียกไฟล์มาครั้งเดียวเท่านั้น


ฟังก์ชั่น require()

เมื่อใช้ ถ้าไม่เจอไฟล์ตามที่ระบุแล้ว มันจะรายงาน error มาเป็น Final error ทันที แล้วก็จะโปรแกรมก็จะหยุดแค่ตรงนั้น จีงนิยมใช้เรียกไฟล์ที่เก็บฟังก์ชัน, คลาส หรือค่า config ต่าง ๆ ที่มีความจำเป็นมาก



ฟังก์ชั่น Require_once()

การทำงานเหมือน ๆ กับ include_once() ผสมกัน คือการทำงานจะเหมือน Require() เพียงแต่ว่ามันจะเรียกไฟล์เ้ข้ามาในสคริปต์แค่ครั้งเดียว



การแก้ปัญหาการใช้ไฟล์ร่วม 

ในการใช้การรวมไฟล์ด้วยคำสั่ง require() และ include() ถ้าการอ้างอิงของสคริปต์ตั้งแต่ 2 ไฟล์ขึ้นไปอ้างถึงไฟล์ไลบรารีเดียวกัน การกระจายของ PHP จะทำซ้ำกัน จึงเกิดปัญหาที่ PHP เข้าใจว่ามีการประกาศฟังก์ชันซ้ำกัน การหลีกเลี่ยงปัญหานี้ให้ใช้ require_once() และ include_once()




การสร้างเว็บเพจต้นแบบ 

ถ้าเว็บไซต์มีเพจจำนวนมาก ในแต่ละหน้าจะมีส่วนหัวและส่วนล่างเหมือนกัน สามารถใช้การรวมไฟล์เพื่อเรียกไฟล์ไลบรารีต้นแบบมาสร้างส่วนที่ใช้งานร่วมกัน



การระบุตำแหน่งไฟล์รวม

สำหรับ Unix
require("../../lib/db_fns.inc");
require("home/httpd/lib/output/heder.inc");

สำหรับ Windows 

require("..\..\Libs\Database\connections.inc");
require("D:WebApps\Libs\MathFunctions\area.inc");

ถ้าไม่ได้ระบุพาร์ท PHP จะมองหาในไดเรคทอรีปัจจุบัน ตามด้วยรายการไดเรคทอรีจากการตั้งค่า include_path ในไฟล์ php.ini ภายใต้ Unix ตัวอักษรแบ่งคือ colon (:)

สำหรับ Windows ตัวอักษรแบ่งคือ semicolon (;)

ตัวอย่างการตั้งค่าภายใต้ระบบ Unix 

include_path=".:/usr/local/lib/php:/home/httpd/globalincs"

ภายใต้ Windows การตั้งค่าคือ

include_path=".;C\PHP\include;D:\WebApps\Libs "




ตัวอย่างการใช้ require ()

ไฟล์ wel.inc
<p align="center">
<?php
echo "<h1>Welcome</h1>";
?>
</p>

ไฟล์ main.php
<html>
<head>
<title>File Include Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-11">
</head>
<body>
<?php
echo "<b>หน้าหลัก </b><br/>";
require("wel.inc");
echo "<b>จบ</b><br/>";
?>
</body>
</html>


ตัวอย่างการใช้ include () 

<?php
include("welcome.inc");
?>








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