PHP. Пайвасти скриптҳо

Печать

Бо дониши начандон калон аз PHP аз он манфиати зиёде ба даст овардан мумкин аст. Барои исботи ин фикр як мисолро таҳлил мекунем. Тасаввур кунед, ки шумо бояд як web-сайти иборат аз 15-20 web-саҳифаро созед. Азбаски ҳангоми офаридани web-сайт одатан ягонагии услубу намуди web-саҳифаҳои он риоя карда мешавад, пас, эҳтимолан, қисми болои (онро header меномем) ва қисми поёнии (онро footer меномем) ҳамаи ин саҳифаҳо намуди ягонаро соҳибанд. Тасаввур мекунем, ки қисми фарқкунандаи ҳар як саҳифа аз дигар саҳифаҳо байни header ва footer ҷой мегиранд.

Дар ҳолати дастӣ сохтани ҳамаи ин саҳифаҳо:
1. Шумо бояд дар ҳар саҳифа қисмҳои header ва footer-ро дастӣ нависед ё нусха созед.
2. Ҳангоми пайдо шудани зарурати тағйир додани header ё footer зарур мешавад, ки дар ҳамаи файлҳо дастӣ тағйиротро дароред.

Фаҳмост, ки чунин тарзи офаридани web-саҳифаҳо вакти бисёрро талаф медиҳад ва самаранок нест. Чӣ бояд кард? Яке аз роҳҳо ин истифодаи имкониятҳои фармони include дар PHP.

Он кодеро, ки дар қисми болоии ҳар як саҳифа бояд пайдо шавад, дар файли header.php нигоҳ медорем.
header.php

<a href="http://www.oftob.com/index.php">Ибтидо</a> |  
<a href="http://www.oftob.com/index.php">Дар бораи мо</a> |
<a href="http://www.oftob.com/index.php">Хабархо</a> |
<a href="http://www.oftob.com/index.php">Contact Us</a>
<br />

Он кодеро, ки дар қисми поёнии ҳар як саҳифа бояд пайдо шавад, дар файли footer.php нигоҳ медорем.
footer.php

<p>Copyright © 2008 OFTOB.COM. All rights reserved. 
</body>
</html>

Инак, сохтори ҳар як саҳифаи сайти мо чунин мешавад:

<?php include("header.php"); ?> 
Ин ҷо тегҳои HTML ё коди ягон php-скрипт
<?php include("footer.php"); ?>

Аён аст, ки номи ҳар як файли мо бояд қисми иловагии .php дошта бошад.

Ба ивази дар ҳар як файл навиштани тегҳои қисмҳои поенӣ ва болоии web-саҳифаро муайянкунанда кофӣ аст, ки ду сатр бо фармонҳои мувофиқи include навишта шаванд. Ҳангоми пайдо шудани зарурият дар иваз кардани қисмҳои header ва footer 15-20 файлҳои сайтро таҳрир кардан зарур нест. Кофӣ аст, ки тағйироти зарурӣ дар header.php ё footer.php навишта шавад.

Масалан, файли асосии web-сайт index.php чунин буданаш мумкин аст:

<?php include("header.php"); ?> 
<?php
$str="Саҳифаи аввалин";
echo $str;
?>
<?php include("footer.php"); ?>

Ҳангоми кушодани index.php, дар броузери ташрифкунандаи сайт аввал матну тегҳои дар файли header.php, баъд матни бо фармони echo аз index.php фиристодашуда ва дар охир матну тегҳои дар footer.php буда инъикос мегарданд.

Яъне фармони include коди дар файли нишондодашуда мавҷудбударо гирифта, онро ба коди дар скрипти фармони include-ро истифодабаранда ҳамроҳ мекардааст.

Агар дар фармони include файли мавҷуд набударо нишон диҳед, ҳангоми иҷрои скрипт хатогӣ рух медиҳад ва маълумоти ба поенӣ монанд чоп мешавад:

Warning: main(noFileExistsHere.php): failed to open stream:
No such file or directory
in /home/testsite/index.php on line 1 Warning:
main(): Failed opening 'File.php' for inclusion
(include_path='.:/usr/lib/php:/usr/local/lib/php')
in /home/testsite/index.php on line 1
Саҳифаи аввалин

Қайд мекунем, ки новобаста аз чоп шудани маълумот дар бораи хатогӣ фармони echo иҷро шудааст. Яъне, ҳангоми истифодаи include, ҳатто дар ҳолати мавҷуд набудани файлҳои зарурӣ, кӯшиши иҷро кардани давоми код карда мешавад.

Фармони ба include монанд require низ мавҷуд аст, ки он ҳангоми мавҷуд набудани файл маълумот дар бораи ин хатогиро чоп намуда, рафти иҷроиши скриптро қатъ мекунад.

Инчунин фармонҳои include_once ва require_once мавҷуданд, ки онҳоро алоҳида омӯхтан лозим аст.

САВОЛҲО БАРОИ МУСТАҲКАМКУНӢ
1. Фарқи фармони include аз фармони require дар чист?
2. Фарқи фармони include аз фармони include_once дар чист?
3. Барномаеро нависед, ки дар он фармони include_once истифода шавад.

Комментарии   

 
-1 #1 Tolib 23.07.2012 06:58
Ба андешаи ман агар ба ҷои
header-сарунвон ва ба ҷои
footer-зерунвон-ро истифода шавад беҳтар мебуд.

Бо эҳтиром, Толиб Розӣ
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Произведение «OFTOB.COM» публикуется на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Непортированная.