Include ба Require


     Зарим шинэ вэб сонирхогчдыг зовоодог нэг асуудал бол яах аргагvй мэню систем. Yvнийг хэрхэн шийдэх вэ?

Эрт дээр vед бол менюг хуудас бvрт бичиж оруулдаг байлаа. Энэ юу гэсэн vг гэхээр хуудас бvрт адил код байж байж тухайн мэню цэвэрхэн харагддаг байсан гэсэн vг.

Удалгvй фрэйм (frame) ашиглаж энэ асуудлыг шийдэх болов. Гэтэл фрэймийг ойлгож хийдэг вэбмастерууд тун олон биш. Тэгээд ч фрэймтэй хуудсыг BOOKMARK хийж болдоггvй, хадгалж болдоггvй гэх мэтийн дутагдлууд байдаг.

Удалгvй арай гайгvй арга нээгдсэн нь SSI буюу Server Side Include байлаа. Эдгээр файлиуд нь SHTML єргєтгєл авдаг нилээд дайнамик.

Тэгвэл би одоо та бvхэнд эдгээрээс хамгийн шилдэг нь болох (миний хувьд) РНР-ээр хэрхэн мэню системийг туйлийн амархан хийхийг vзvvлье.

Анхааруулга!

Та бvхэн vvнийг уншиж байх vедээ вэбийн дунд шат хvртэлх хэмжээний мэдлэгтэй байх хэрэгтэй. Миний бичлэгийн арга барил болон агуулах мэдээлэл нь таны тєвшинд хvрээгvй нєхцєлд та миний дээр vед бичиж байсан вэбийн vндэс болон бусад єгvvллэгvvдийг дахин уншиж vзэхийг зєвлєж байна. Учир та бvгдэд нэг бичсэнээ дахин давтах нь нэмж юм сурахыг хvсэгч нилээд олон залуусаа чилээсэн хэрэг болно гэж эмээж байна. За эхэлье.

Вэбийг хийх хамгийн хялбар бєгєєд оновчтой арга бол вэбийн ажиллагааг хэдэн хэсэгт задлах, тэдгээр нь нэг нэгэндээ шавар хаахгvй байх явдал юм.

Нэг хэсгийн код нь тусгаар тогтносон муж улс шиг байна гэсэн vг л дээ.

Мэню систем бол эдгээрийн нэг нь байдаг.

Бусад нь юу байж болох вэ?

1. Header,
2. Menu
3. Content
4. Menu
5. Footer

жишээ нь энд дар

Эдгээрээс анхааралтай ажиглаваас байнга єєрчлєгдєж байдаг цорын ганц хэсэг нь CONTENT буюу вэбийн мэдээлэл байдаг. Бусад нь хэвэндээ байдаг тул тэдгээрийг бvтээснийхээ дараа мартчихсан ч болно. Нэг ёсондоо вэбийг бvтээхэд бvх хэсэгт нь тэгж их анхаарал тавих хэрэггvй. Мэню дуусаа бол дуусаа. Маргааш нь мэдээллийн булангаа л шинэчлэвэл сайн бусад нь хамаагvй байдаг.

Тийм учраас бид хэрэглэгчийг буюу вэб зорчигчдыг хялбар аргаар мэхэлж болно. Хэрэглэгчийн яг дэлгэцэн дээр хараад байгаа зvйлс vнэндээ РНР кодоор дуудагдаж агшин зуурт бvтээгдэж байдгаас анхнаасаа гараар бичигддэггvй. Тэр бол 1995 оноос ємнєх балрын асуудал. Одоо бид хэрхэн вэбийг бvтээж байгааг жинхэнэ кодоос нь харъя.

<?
$page_title = "whatever you would write goes here";
require ("header.php");
require ("menu.php");
print ("The whole stuff you want to fuss about");
require ("menu.php");
require ("footer.php");
?>


Дээрх кодоос харахад require кодоор вэб хуудасны хэлтэрхийнvvдийг дуудаж цуглуулдаг нь мэдээж байна. require гээд л оруулах хэсгийхээ нэрийг оруулаад л болоо. Нээрэнгээсээ ийм амархан.

print ("The whole stuff you want to fuss about");

Энэ хэсэгт нь та хvссэн юмаа оруулж болно. Тэгээд л хооронд нь холболтоо хийгээд л таны вэб хуудас тань хvн харахад таныг лаг их хvч хєдєлмєр гаргаж бvтээсэн мэт харагдана. Yнэндээ бол та require кодоор хэсэг кодуудыг л эвлvvлсэнээс биш гараар бvтэн скрипт бичээгvйг цєєн хэдэн вэбчид мэдэхээс єєр хэн ч мэдэхгvй.

Тэгвэл одоо HEADER -ээ бvтээж vзье.

<HTML>
<HEAD>
<TITLE>
<?php
print ("$page_title");
?>
</TITLE>
<BODY>
<TABLE WIDTH=80% ALIGN=CENTER BORDER=0>
<TR><TD ALIGN=CENTER><B><Welcome to the Site!</B></TD></TR>
<TR><TD ALIGN=LEFT><P>


Дээрк код нь HEADER дуудагдсан газар бvрт шургаж орж ирнэ. Тийм учраас бид нар HEADER-г 2-рт оруулдаг. Учир нь хєєрхий муу HEADER гуай PAGE_TITLE гуайн нэр усыг мэдэж байх ёстой.

Яагаад?

Яагаад гэхээр РНР PARSER кодыг уншихдаа хvн шиг дээрээс нь уншаад мєр дуусахад дараачийн мєр лvv шилждэг. Тэгэхдээ санах ойдоо тvрvvн уншсан зvйлээ тогтоож явдаг. Тиймээс PAGE_TITLE байгаа мєрийг эхэнд нь оруулж бичдэг. 2-дах удаагаа PAGE_TITLE дайралдвал санах ойгоосоо утгыг нь оруулаад єгчихдєг. VALUE болчихдог гэсэн vг л дээ.

Одоо дараачийн бvлэг код болох FOOTER-г хэрхэн бvтээхийг харъя.

<P></TD></TR>
<TR><TD ALIGN=CENTER><SMALL>Copyright 2002 Asuult.net</SMALL></TD></TR>
</TABLE>
</HTML>


Ийм энгийн. Энэ FOOTER маань эцсийн эцэст ёрдєє л HTML кодын хэсэг шvv дээ.

Нэгэнт HEADER ба FOOTER хоёр бvтээгдсэний дараа гол мэдээллээ бичиж эхлэхэд бэлэн гэсэн vг. Home page-ээ бичээд vзье.

<?php
$page_title = "Home Page";

require ("header.php");
require ("menu.php");
print ("The whole stuff you want to fuss about");
require ("menu.php");
require ("footer.php");
?>


2 дах хуудас vvнээс ялгараад байх юм гэвэл

$page_title = "Home Page"; нь

$page_title = "Second Page"; гээд

print ("The whole stuff you want to fuss about");

хэсэгт байх мэдээлэл нь ондоо байна. Тэгээд л бусад бvх мэню, HEADER, FOOTER нь єєрчлєгдєхгvй.

3 дах хуудас нь

<?php
$page_title = "Third Page";

require ("header.php");
require ("menu.php");
print ("The whole stuff you want to fuss about");
require ("menu.php");
require ("footer.php");
?>


Одоо мэнюгээ харъя.

<CENTER><a href=1.php>Home</a> <a href=2.php>ABOUT ME</a> <a href=3.php>LINKS</a></CENTER>

Нэгэн энгийн жишээ харья.

Энэ хуудасны эхний хуудасных нь сорс код нь ингэж харагдана.

<HTML>
<HEAD>
<TITLE>
Home Page</TITLE>
<BODY>
<TABLE WIDTH=80% ALIGN=CENTER BORDER=0>
<TR><TD ALIGN=CENTER><B><Welcome to the Site!<br>This is a header. It could be nicer if it were a real header.<br> Educational purpose ONLY!</B></TD></TR>
<TR><TD ALIGN=LEFT><P><br><CENTER>
<a href=1.php>Home</a>
<a href=2.php>ABOUT ME</a>
<a href=3.php>LINKS</a></CENTER>
<br>
<br>
<br>
WELCOME TO MY HOME PAGE STUFF GOES HERE. THIS IS THE PAGE GREETS YOUR VISITORS SO IT SHOULD BE REALLY NICE. NOW, CLICK THE ABOUT ME PAGE FROM THE MENU AND SEE WHAT CHANGES AND WHAT STAYS THE SAME.
<br>
<br>
<br>
<CENTER>
<a href=1.php>Home</a>
<a href=2.php>ABOUT ME</a>
<a href=3.php>LINKS</a></CENTER>
<P></TD></TR>
<TR><TD ALIGN=CENTER><P>This is a footer. It could be nicer if it were a real footer.<br> Educational purpose ONLY! <SMALL>Copyright 2002 Asuult.net</SMALL></TD></TR>
</TABLE>
</HTML>


Энэ код ингэж харагдаж байгаагийн учир нь браузэрын ISP-ээс хvлээж авах код нь РНР Сэрвэрээр дамжихдаа ингэж хєрвvvлэгддэгээс юм.

Вэбийн мэню систэмийг HEADER-тээ оруулаад єгсєн ч болно. Yvнд ялгаа гараад байхгvй гэж би бодож байна. Хамгийн сvvлд хэлэх юм бол
REQUIRE ба INCLUDE хоёрт айхтар их ялгаа байхгvй, адилхан шахуу. Бяцхан ялгаа нь INCLUDE-г нєхцєл заагаад нєхцєл нь бvрдсэн vед оруулж ирдэг байхад REQUIRE нь заавал вэб хуудсанд байх ёстой хэсгийг оруулж ирдэг.

Буцах