Dołączanie plików
Jeżeli nasz skrypt zawiera dużo kodu możemy go podzielić na mniejsze partie, a później „sklejać” w całość. Po co? Zobaczmy.
Wiemy już jaki jest sens dzielenia pliku, ale jak to później połączyć? ano tak:
include()
dołącza plik do kodu, w razie braku pliku generuje ostrzeżenie kontynuując pracę skryptu
include_once()
dołącza plik do kodu jednokrotnie, w razie braku pliku generuje ostrzeżenie kontynuując pracę skryptu
require()
dołącza plik do kodu, w razie braku pliku generuje błąd i przerywa działanie skryptu
require_once()
dołącza plik do kodu jednokrotnie, w razie braku pliku generuje błąd i przerywa działanie skryptu
Funkcje include_once() i require_once() są przydatne jeśli chcemy uniknąć ponownego definiowania funkcji i klas z pliku – PHP sprawdza czy dołączany plik nie był dołączony już wcześniej.
Nasze pliki wyglądają teraz tak:
header.php
<!DOCTYPE html> <html> <head> <title>Przykład</title> </head> <body>
menu.php
<div id="menu"> <ul> <li>Start</li> <li>Kontakt</li> </ul> </div>
footer.php
<p>to jest stopka strony</p> </body> </html>
index.php
<?php require_once("header.php"); require_once("menu.php"); ?> <div>I tutaj umieszczamy wszystko co chcemy na naszej stronie</div> <?php require_once("footer.php"); ?>
PAMIĘTAJ gdzie znajdują się pliki żeby podać poprawnie ścieżkę dostępu!
ZADANIE: Dostosuj swoją stronę do powyższego przykładu. Podziel ją na poszczególne moduły, a następnie za pomocą require_once() połącz ją w calość.
Funkcje operacji na strukturze systemu plików
Pełną listę funkcji znajdziecie w dokumentacji PHP – funkcje systemu katalogów, poniżej najczęściej wykorzystywane.
getcwd()
Wskazuje bieżący katalog roboczy
echo getcwd(); // bieżący katalog w jakim się znajdujesz np. home/php/
chdir()
Zmienia bieżący katalog roboczy (lokalizację) na podany w parametrze.
echo getcwd() . "\n"; // bieżący katalog w jakim się znajdujesz np. home/php/ chdir('public_html'); // zmiana bieżącego katalogu echo getcwd() . "\n"; // bieżący katalog np. home/php/public_html/
scandir()
Wypisze wszystkie pliki i katalogi z określonej lokalizacji. Pierwszy parametr to lokalizacja katalogu, drugi to sortowanie: 0 (rosnąco – domyślny) lub 1(malejąco)
$dir = '/tmp'; $files1 = scandir($dir); $files2 = scandir($dir, 1); print_r($files1); print_r($files2);
otrzymamy
Array ( [0] => . [1] => .. [2] => bar.php [3] => foo.txt [4] => jakiśkatalog ) Array ( [0] => jakiśkatalog [1] => foo.txt [2] => bar.php [3] => .. [4] => . )
Zadanie dla klas, które miały HTMLa:
Rozpocznij tworzenie autorskiego CMS – możesz wykorzystać do tego stronę www, którą posiadasz (nie WordPress, Joomla itp.).
Wydziel z niej bloki odpowiedzialne za formatowanie tych części strony, które się nie zmieniają (jak w przykładzie wyżej) tzn.:
- nagłówek
- menu
- stopka
- część główna strony
- panele boczne
- itp.