Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]require_once
Forum PHP.pl > Forum > Przedszkole
require_once
mam strukture folderow 0/1/2/
w folderze 2 mam plik.php
w folderze 0/ mam index.php w ktorym includuje pliczek 1/xxx.php z instrukcją:
  1. require_once('1/2/plik.php');

lecz gdy zmienie na
  1. require_once('2/plik.php');

plik rowniez jest zaciagany dopiero
  1. require_once('plik.php');

wywala fatal error

O co z tym chodzi, bo rozumiem, że tak ma byc,
ogolnie sciezki w includowanych plikach w index.php podawane byly od indexu czyli folderu 0 a tu takie zaskoczenie z tym require_once

skad ta funkcja 'odgaduje' sciezki 'wzgledne' niech ktos mądry lub doświadczony mi wyjasni
pozdrawiam,
gitbejbe
powiem szczerze, że ja tam zawsze ciągnę ścieżkę od pliku wykonawczego i się o nic nie martwię - zawsze wszędzie działa nawet jeśli zmieniam serwer czy coś.

Manual radzi podawać ścieżki na 2 sposoby :
Cytat
a. Do not give absolute path to include files on your server.
b. Dynamically calculate the full path (absolute path)

  1. //One of my typical example is:
  2.  
  3. <?php
  4. define('__ROOT__', dirname(dirname(__FILE__)));
  5. require_once(__ROOT__.'/config.php');
  6. ?>


Cytat
skad ta funkcja 'odgaduje' sciezki 'wzgledne'

na zdrowy rozsądek i logikę, jest tak,że każdy 'include' pobiera względem dokumentu wykonawczego, ale jak widać powyżej można tez podawać pełną ścieżkę. jest też coś takiego jak include_patch

znowu kłania się manual
Cytat
Specifies a list of directories where the require, include, fopen(), file(), readfile() and file_get_contents() functions look for files. The format is like the system's PATH environment variable: a list of directories separated with a colon in Unix or semicolon in Windows.

PHP considers each entry in the include path separately when looking for files to include. It will check the first path, and if it doesn't find it, check the next path, until it either locates the included file or returns with a warning or an error. You may modify or set your include path at runtime using set_include_path().
require_once
dzieki, mozna bylo sie w sumie domyslec ale czasami pojawia sie taka niewidzialna blokada.

mi sie nie udalo dokopac do tych informacji w manualu (slabo cos szperałem), u mnie przy include sciezka pliku wykonawczego = pelna sciezka bezwzgledna a utarło mi sie ze jest to wzgledna i zdziwilo mnie przy require dziala to i to (gdy szukalem przyczyny niepotrzebnego wyswietlania sie za fo oczywiscie odpowiadał IF).

set_include_path - slyszlaem ale nie stosuje.

Wyjaśniłeś, pozdrawiam.

+
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.