Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak tak naprawdę działa require_once?
Forum PHP.pl > Forum > Przedszkole
S_Olewniczak
Mam taką strukturę katalogów:
Kod
main
       |_a
       |_b
          |_c
       |_d

Mam w katalogu b plik 1.php:
Kod
   require_once('../d/4.php');

w katalogu a mam plik 2.php:
Kod
   require_once('../b/1.php');

w katalogu c mam plik 3.php:
Kod
   require_once('../../b/1.php');

Plik 4.php ma jakąś tam zawartość. Plik 2.php działa bezbłędnie,a natomiast plik 3.php zwraca błąd, że nie widzi pliku 4.php. Z czym to jest związane? Jak można temu zapobiec? Jak naprawdę działa funkcja require z względnymi adresami url?
ddiceman
PHP probuje otworzyc plik z podanej lokacji i jego zawartosc wkleja w miejsce wywolania funkcji require, wobec czego wywolujac plik 3.php:

1. parser napotkal linijke require_once('../../b/1.php');
2. przeszedl ze swojego katalogu /b/c do katalogu /b/c/../../b/ (czyli /b) i odczytal stamtad plik 1.php
3. jego zawartosc uzyl jak kodu pliku 3.php - w miejsce require_once('../../b/1.php'); wstawil require_once('../d/4.php');
4. sprobowal ze swojego katalogu /b/c przejsc do ../d/, czyli /b/d. co mu sie nie powiodlo i skrypt zakonczyl dzialanie bledem

Sprobuj wykorzystac include_path i ini_set('include_path', '/');
S_Olewniczak
A, może wiecie jak taki problem rozwiązać lepiej bo mam przeczucie, że pcham się w niezłe bagno.
ddiceman
Sciezki bezwzgledne lub include_path = server_root_directory
Strarus
Lepiej, czyli, że jak haha.gif Możesz dać cały kod do jednego pliku, tylko ścieżki poustawiać - tak mi się wydaje, mogę się mylić i pewnie się mylę haha.gif
S_Olewniczak
Czy za pomocą include_path można dołączać więcej niż jeden katalog?
S_Olewniczak
Mam jeszcze jedno pytanie: Czy include_path działa też w przypadku funkcji fopen()?
erix
A manual gryzie?
Cytat
The optional third use_include_path parameter can be set to '1' or TRUE if you want to search for the file in the include_path, too.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.