Inlcudowanie php polega na wyciągnięciu przez php wartości pewnego pliku i wrzuceniu go w odpowiednie miejsce na stronie. Jest to bardzo przydatna funkcja – na początku tworzymy szablon strony, a w główne miejsce php wczyta kolejne "podstrony".
Zaczynamy od prostego szablonu xhtml:
Cytat: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Ćwiczymy includowanie php</title></head>
<body>
<div>To jest logo</div>
<!-- menu -->
<div style="float:left;width:300px">Menu
<ul><li><a href="#">test</a></li>
<li><a href="#">test</a></li></ul>
</div>
<div style="float:left">tutaj umieszczamy kod php</div>
</body>
</html>
Teraz omówię kod php, który wykorzystamy na stronie:
Cytat: <?php
$nr=$_GET['nr'];
define('katalog','inc');
$roz=array('.php','.txt');
if(preg_match('/^[0-9a-zA-Z_]*$/',$nr)){
for($i=0;$i<count($roz);$i++){
if(file_exists(katalog.'/'.$nr.$roz[$i])){
include(katalog.'/'.$nr.$roz[$i]);
break;
}
}
}
?>
Zmienna $nr jest pobierana z "paska adresu" (z tablicy GET). Następnie definiujemy katalog, w którym mieszczą się nasze podstrony (w moim przypadku jest to katalog inc). Kolejna linijka zawiera dozwolone rozszerzenia plików, z tym że kolejność jest ważna - mianowicie, jeśli posiadamy na serwerze dwa pliki o tej samej nazwie - zostanie zaincludowany (wczytany) ten, którego rozszerzenie jest wymienione jako pierwsze. W linijce 5 sprawdzamy, czy czasem ktoś nie spreparował zmiennej $nr (sprawdzamy czy zawiera ona tylko cyfry, litery i znak podkreślenia). Jeśli weryfikacja przebiegnie pomyślnie - uruchamiana jest pętla odpowiedzialna za rozszerzenia. Następnie sprawdzamy za pomocą funkcji file_exists czy dany plik istnieje na serwerze; jeśli tak jest - przerywamy pętlę, jeśli nie - sprawdzane jest kolejne rozszerzenie.
Kod ten wstawiamy w napisany wyżej szablon. Teraz wystarczy tylko odpowiednio przerobić nasze linki - należy zmienić atrybut href z "x.roz" na "?nr=x" usuwając rozszerzenie, tzn.:
test.php -> ?nr=test
podstrona1.txt -> ?nr=podstrona
jakas_strona.php -> ?nr=jakas_strona
W całości linki wyglądają tak:
<a href="?nr=test">test</a> (zostanie zaincludowana podstrona leżąca w folderze inc o nazwie test i rozszerzeniu php lub txt).