![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak w temacie - jak najlepiej podawać ścieżki w PHP?
1) 'plik.php' 2) '/plik.php' 3) './plik.php' 4) ścieżka bezwzględna Proszę o Wasze wypowiedzi. Ten post edytował kodereq 4.05.2009, 11:15:43 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Co za różnica jak wszystkie sposoby działają?
![]() Ja w indeksie deklaruję po prostu stałą ROOT_PATH o wartości ./ i dopisuję wszędzie, gdzie coś dołączam. Jakby zaistniała potrzeba wywołania skryptu w katalogu wyżej to zmieniam ją na ../ i nie ma problemu ![]() -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Co za różnica jak wszystkie sposoby działają? Wbrew pozorom całkiem spora. Bo jeśli dasz ./plik.php to PHP szuka tego pliku tylko w bieżącym katalogu. A jeśli dasz samo plik.php, to jeśli PHP nie znajdzie pliku w bieżącym katalogu, to przeszukuje też wszystkie ścieżki zapisane w systemowej zmiennej PATH. Tak więc /coś.php, ./coś.php i ścieżki bezwzględne działają szybciej niż coś.php![]() Poza tym podawanie ścieżek bezwzględnych jest bezpieczniejsze - jeśli masz kilka poziomów include'owania, to łatwo o błąd przy podawaniu ścieżek względnych. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
@sowiq: Jak najlepiej i najpewniej uzyskać ścieżki bezwzględne, tak aby działały na praktycznie każdej platformie? Wystarczą zmienne $_SERVER ? Jeśli tak, to pewniejsze jest DOCUMENT_ROOT czy SCRIPT_FILENAME? A np w Zend framework jak to jest rozwiązane (nie mam pod ręką, potem poszukam)?
Ten post edytował kodereq 4.05.2009, 11:52:11 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o:
__FILE__ dirname()" title="Zobacz w manualu PHP" target="_manual http://www.heavymind.net/zend-framework-tutorial/ Zrób echo dirname(__FILE__); i zobacz co pokaże ![]() Ten post edytował sowiq 4.05.2009, 12:04:38 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem mały test, postarałem się zgrupować wszystkie metody uzyskania ścieżki bezwzględnej.
1) dirname(__FILE__): 'C:\xampp\htdocs ' 2) $_SERVER['DOCUMENT_ROOT']: 'C:/xampp/htdocs' 3) $_SERVER['SCRIPT_FILENAME']: ' C:/xampp/htdocs/sciezka.php' 4) realpath(): 'C:\xampp\htdocs' Teraz zapytuję co skuteczniejsze i czy czegoś nie pominąłem? Ten post edytował kodereq 4.05.2009, 13:37:54 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zrób sobie tak:
plik index.php:
plik jakis_katalog/inny_katalog/test.php:
Odpal index.php i porównaj wyniki. To powinno rozwiać Twoje wątpliwości. Ten post edytował sowiq 4.05.2009, 16:25:27 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:46 |