ďťż
Podstrony
|
telcocafePlik C:\xampp\htdocs\poll.phprequire 'katalog/sonda/sonda.php'; Plik C:\xampp\htdocs\katalog\sonda\sonda.php require 'hello.php';Zauważmy, że katalogiem bazowym nadal jest C:\xampp\htdocs Plik C:\xampp\htdocs\katalog\sonda\hello.php Hello world! Co otrzymujemy? "Hello world!" Taki kod nie zadziałałby w PHP4. W PHP5 jest możliwe dołączenie pliku z tego samego katalogu (niebazowego) bez podania ścieżki. Czy to zależy od wersji PHP, czy od konkretnej konfiguracji? Include path: .;C:\xampp\php\PEAR Aby każdy zrozumiał, o co chodzi, podam prosty przykład. 1. W głównym folderze jest nasz główny plik index.php. 2. Ściągamy komponent / skrypt i umieszczamy go w folderze /skrypt/. 3. W pliku index.php dołączamy: /skrypt/skrypt.php. 4. Plik skrypt.php dołącza bezpośrednio inny plik w tym samym folderze, np. skrypt2.php include 'skrypt2.php';Mimo że w naszym przypadku katalogiem bazowym jest główny folder (ten, w którym siedzi nasz index.php). Czy taki skrypt ma prawo działać na każdej konfiguracji PHP 5? Czy jednak trzeba wykryć ścieżkę względem index.php i podawać ją przy każdym include bądź wywołać chdir()? Er, nie rozumiem o co ci chodzi ;) Przy include parser szuka pliku zaczynając od katalogów z INCLUDE_PATH kończąc na katalogu wywołanego skryptu. Tak więc include 'foo/bar.php'; załączy bar.php z podkatalogu foo skryptu jeżeli wcześniej nie znajdzie czegoś takiego w katalogach z INCLUDE_PATH. Zaleca się podawanie ścieżki względnej typu include './foo/bar.php' tak by parser nie przeszukiwał całego INCLUDE_PATH, tylko od razu szukał względem wywołanego skryptu w przeglądarce (ścieżki są względne względem wykonującego się skryptu niezależnie od zagnieżdżenia include). Chyba trochę niejasno opisałem problem, ale już nieważne. Dla bezpieczeństwa lepiej wywołać chdir(), aby ustawić ścieżkę skryptu, a potem przywrócić poprzednią też za pomocą chdir(). Ewentualnie utworzyć stałą SCRIPT_DIR ze ścieżką. Chodzi o to, że skrypt.php jest już dołączony przez plik z wyższego katalogu. Zadziała zarównoinclude('./skrypt/skrypt2.php'); //oraz include('skrypt2.php'); |
|||
Sitedesign by AltusUmbrae. |