Включване на файлове 
Тема 4 
11.12.14 1
Съдържание 
1.Включване на файлове 
2.Избягване на повторенията 
3.Примерен сайт 
 Разглеждат се начините за изграждане 
на динамично съдържание и 
многократното използване на един и 
същи код в сайтовете. 
11.12.14 2
1. Включване на 
файлове 
 Функцията - include(): 
 приема като параметър пътят (абсолютен или 
относителен) до файла, който искаме да включим; 
 включеният чрез include() файл като код, се намира 
на реда, в който се намира функцията - "вгражда" в 
тялото на текущия документ; 
 всички променливи, които са дефинирани до 
появата на функцията ще са достъпни и за кода на 
включени файл; 
 файла се загражда с - ”” ; 
 Ако извикате PHP файл от отдалечен сървър, 
трябва да сте сигурен, че скриптът може да бъде 
изпълнен там. 
11.12.14 3
Пример_1 
../uroci/t4/indext41.php 
<HTML> 
<BODY> 
<h2> 
<?php // Това е index41.php 
$name="Иван"; 
$ip=getenv('REMOTE_ADDR') 
11.12.14 4 
; 
include ("content41.php"); 
?> 
</h2> 
</BODY> 
</HTML> 
../uroci/t4/content41.php 
<?php // Това е content41.php 
echo "Здравейте, $name! 
<br>Вашият IP адрес е $ip"; 
?> 
Двата файла са в една 
директория
Особености 
 Пътищата до 
даден файл 
могат да са 
абсолютни и 
относителни; 
 Абсолютен е 
пътят от 
коренната 
директория на 
системата, а 
относителен - от 
единия файл до 
другия. 
 Когато файла е в друга 
директория: 
include ("../files/content.php"); 
Или 
include 
("/home/www/files/content.php"); 
 Когато е на отдалечен сървър 
include ("http://www.server.com/content.php"); 
11.12.14 5
Функцията- require () 
 според официалната документация на PHP, това не 
е функция, а езикова конструкция; 
 последица от този факт е, че не връща стойност - 
т.е. не можете да проверите дали включването на 
допълнителния файл е било успешно или не; 
 кодът първо се обработва (парсва) и чак след това 
изпълнява. 
 Важна е следната особеност - ако имате грешка на 
последния ред от кода си, той може да не се 
изпълни изобщо, нито ред от него, защото може да 
се появи грешка при обработването - Parse error . 
11.12.14 6
Пример_2 – 
включваният файл не съществува 
../uroci/t4/indext42.php 
<HTML> 
<BODY> 
<h2> 
<?php // Това е index42.php 
echo "Поздрав : <br>"; 
$name="Иван"; 
$ip=getenv('REMOTE_ADDR'); 
include ("content.php"); // 
файлът не съществува 
echo "<h1>Добре дошъл в сайта! 
</h1> <br>"; 
?> 
</h2> 
</BODY> 
</HTML> 
- Изпълнението продължава 
../uroci/t4/indext42_r.php 
<?php // Това е index42_r.php 
echo "Поздрав : <br>"; 
$name="Иван"; 
$ip=getenv('REMOTE_ADDR'); 
require("content.php"); // файлът 
не съществува 
echo "<h1>Добре дошъл в сайта! 
</h1> <br>"; 
?> 
- Изпълнението спира 
11.12.14 7
2.Избягване на 
повторенията 
 При по-сложни включвания на файлове 
един в друг, може да се получи 
неколкократно повтаряне на кода на един 
и същи файл; 
 Това най-често води до грешки - или в 
обработката или в логиката на изпълнението; 
 Предотвратяване чрез: 
include_once() 
и 
require_once(). 
11.12.14 8
Изпълними файлове 
Така скриптът ще се изпълни на 
отдалечения сървър, а в нашия 
файл ще се включи резултатът 
от това изпълнение - в случая 
изображение на банер и линк 
към съответен сайт. 
 Съществува разликата между включване на файл 
от отдалечен сървър и на файл от локалната 
машина: 
 да включим в текущата страница perl скрипт за банерна 
ротация - banner.cgi; 
 Ако той се намира на друг сървър, можем да направим 
включването така: 
<?php 
// Включване на банер 
include ("http://www.server.php/banner.cgi? 
page=$_SERVER[‘PHP_SELF’]"); 
echo "<br>Добре дошъл в сайта!<br>"; 
?> 
11.12.14 9
 При опит по този 
начин да извикаме 
локален файл, 
резултатът ще бъде 
друг. 
 ../uroci/t4/ex43.php 
<?php 
// Включване на банер 
$page=$_SERVER[‘PHP_SELF’]; 
include("cgi.cgi"); 
echo "<br>Добре дошъл в сайта!<br>"; 
?> 
При изпълнението - на екрана ще 
се изпише изходния код на CGI 
скрипта, а не резултатът от 
неговото изпълнение 
11.12.14 10
Функцията -- virtual () --само 
за Apache 
 По този начин можете да изпълнявате различни видове файлове в 
PHP скриптовете си, но трябва да запомните, че не можете 
да използвате virtual () за PHP файлове. 
../ login/ex44.php 
<?php 
// Включване на банер –изпълнява се само със сървър Apache 
//$page=$_SERVER[‘PHP_SELF’]; 
echo "това(ок) е от файла cgi.cgi:-----------> "; 
virtual("cgi.cgi"); 
echo "<br>Добре дошъл в сайта!<br>"; 
?> 
//ако банерната система е написана на PHP, то използването на virtual 
() ще върне грешка – за това трябва да използвате include () или 
require () 
11.12.14 11
3.Примерен сайт 
За да илюстрираме на практика използването на функциите: 
Нека съставим малък сайт. 
Сайтът ще се състои от няколко страници с еднакъв външен 
вид - т.е. еднакви горна и долна част, както и еднакво 
навигационно меню. 
Сайтовете, правени по тази схема могат да се управляват 
лесно и са приятелски към потребителите, защото не им 
поднасят "изненади" на всяка страница - като променено 
местоположение на менюто или различна цветова схема. 
Страниците в примерния сайт ще се състоят от 4 части - 
header.html, footer.php, menu.php и съответното съдържание 
за всяка от тях. 
11.12.14 12
Примерен сайт(2) 
 header.html ; 
 menu.php; 
 footer.php ; 
 once.php; main.php и include.php; 
 index.php. 
11.12.14 13

B4 t4 include_files

  • 1.
  • 2.
    Съдържание 1.Включване нафайлове 2.Избягване на повторенията 3.Примерен сайт  Разглеждат се начините за изграждане на динамично съдържание и многократното използване на един и същи код в сайтовете. 11.12.14 2
  • 3.
    1. Включване на файлове  Функцията - include():  приема като параметър пътят (абсолютен или относителен) до файла, който искаме да включим;  включеният чрез include() файл като код, се намира на реда, в който се намира функцията - "вгражда" в тялото на текущия документ;  всички променливи, които са дефинирани до появата на функцията ще са достъпни и за кода на включени файл;  файла се загражда с - ”” ;  Ако извикате PHP файл от отдалечен сървър, трябва да сте сигурен, че скриптът може да бъде изпълнен там. 11.12.14 3
  • 4.
    Пример_1 ../uroci/t4/indext41.php <HTML> <BODY> <h2> <?php // Това е index41.php $name="Иван"; $ip=getenv('REMOTE_ADDR') 11.12.14 4 ; include ("content41.php"); ?> </h2> </BODY> </HTML> ../uroci/t4/content41.php <?php // Това е content41.php echo "Здравейте, $name! <br>Вашият IP адрес е $ip"; ?> Двата файла са в една директория
  • 5.
    Особености  Пътищатадо даден файл могат да са абсолютни и относителни;  Абсолютен е пътят от коренната директория на системата, а относителен - от единия файл до другия.  Когато файла е в друга директория: include ("../files/content.php"); Или include ("/home/www/files/content.php");  Когато е на отдалечен сървър include ("http://www.server.com/content.php"); 11.12.14 5
  • 6.
    Функцията- require ()  според официалната документация на PHP, това не е функция, а езикова конструкция;  последица от този факт е, че не връща стойност - т.е. не можете да проверите дали включването на допълнителния файл е било успешно или не;  кодът първо се обработва (парсва) и чак след това изпълнява.  Важна е следната особеност - ако имате грешка на последния ред от кода си, той може да не се изпълни изобщо, нито ред от него, защото може да се появи грешка при обработването - Parse error . 11.12.14 6
  • 7.
    Пример_2 – включваниятфайл не съществува ../uroci/t4/indext42.php <HTML> <BODY> <h2> <?php // Това е index42.php echo "Поздрав : <br>"; $name="Иван"; $ip=getenv('REMOTE_ADDR'); include ("content.php"); // файлът не съществува echo "<h1>Добре дошъл в сайта! </h1> <br>"; ?> </h2> </BODY> </HTML> - Изпълнението продължава ../uroci/t4/indext42_r.php <?php // Това е index42_r.php echo "Поздрав : <br>"; $name="Иван"; $ip=getenv('REMOTE_ADDR'); require("content.php"); // файлът не съществува echo "<h1>Добре дошъл в сайта! </h1> <br>"; ?> - Изпълнението спира 11.12.14 7
  • 8.
    2.Избягване на повторенията  При по-сложни включвания на файлове един в друг, може да се получи неколкократно повтаряне на кода на един и същи файл;  Това най-често води до грешки - или в обработката или в логиката на изпълнението;  Предотвратяване чрез: include_once() и require_once(). 11.12.14 8
  • 9.
    Изпълними файлове Такаскриптът ще се изпълни на отдалечения сървър, а в нашия файл ще се включи резултатът от това изпълнение - в случая изображение на банер и линк към съответен сайт.  Съществува разликата между включване на файл от отдалечен сървър и на файл от локалната машина:  да включим в текущата страница perl скрипт за банерна ротация - banner.cgi;  Ако той се намира на друг сървър, можем да направим включването така: <?php // Включване на банер include ("http://www.server.php/banner.cgi? page=$_SERVER[‘PHP_SELF’]"); echo "<br>Добре дошъл в сайта!<br>"; ?> 11.12.14 9
  • 10.
     При опитпо този начин да извикаме локален файл, резултатът ще бъде друг.  ../uroci/t4/ex43.php <?php // Включване на банер $page=$_SERVER[‘PHP_SELF’]; include("cgi.cgi"); echo "<br>Добре дошъл в сайта!<br>"; ?> При изпълнението - на екрана ще се изпише изходния код на CGI скрипта, а не резултатът от неговото изпълнение 11.12.14 10
  • 11.
    Функцията -- virtual() --само за Apache  По този начин можете да изпълнявате различни видове файлове в PHP скриптовете си, но трябва да запомните, че не можете да използвате virtual () за PHP файлове. ../ login/ex44.php <?php // Включване на банер –изпълнява се само със сървър Apache //$page=$_SERVER[‘PHP_SELF’]; echo "това(ок) е от файла cgi.cgi:-----------> "; virtual("cgi.cgi"); echo "<br>Добре дошъл в сайта!<br>"; ?> //ако банерната система е написана на PHP, то използването на virtual () ще върне грешка – за това трябва да използвате include () или require () 11.12.14 11
  • 12.
    3.Примерен сайт Зада илюстрираме на практика използването на функциите: Нека съставим малък сайт. Сайтът ще се състои от няколко страници с еднакъв външен вид - т.е. еднакви горна и долна част, както и еднакво навигационно меню. Сайтовете, правени по тази схема могат да се управляват лесно и са приятелски към потребителите, защото не им поднасят "изненади" на всяка страница - като променено местоположение на менюто или различна цветова схема. Страниците в примерния сайт ще се състоят от 4 части - header.html, footer.php, menu.php и съответното съдържание за всяка от тях. 11.12.14 12
  • 13.
    Примерен сайт(2) header.html ;  menu.php;  footer.php ;  once.php; main.php и include.php;  index.php. 11.12.14 13