Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]require_once, pytanie osciezke
-require_once-
post
Post #1





Goście







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,
Go to the top of the page
+Quote Post
gitbejbe
post
Post #2





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


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().


Ten post edytował gitbejbe 5.07.2013, 07:18:35
Go to the top of the page
+Quote Post
-require_once-
post
Post #3





Goście







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.

+
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 05:58