Loading:

PHP 7 News & Updates v7.0 - 7.4 - book

Bezwględna ścieżka dostępu do pliku dla include() lub require_once()

Opis

 

Artykuł opisuje jak zadeklarować ścieżkę bezwględną podczas includowania (załączania) zawartości innego pliku do kolejnego.

 

Scenariusz

 

Z pewnością, każdy z was już doświadczył problemu jakim niewątpliwie jest odwołanie do innego pliku względem innej lokalizacji.

 

Przypuśćmy, że posiadamy plik o nazwie  config.php, który includuje plik baza.php (w tym samym katalogu), czyli:

 

include('baza.php');

 

Teraz chcemy zaincludować plik config.php do naszego głównej pliku index.php. Po tej czynności dostaniemy błąd includowania, ponieważ zaciągamy plik config.php, co oznacza, że jego include dla baza.php musi być zaktualizowane, np do:

 

include('../baza.php'); 

 

Teraz  przypuśćmy, że mamy folder o nazwie admin, w którym również posiadamy (ale osobny) plik index.php i oczywiście również chcemy mieć dostęp do pliku config.php.

 

Problem

 

Narodził się problem, ponieważ includujemy plik config.php, który posiada deklaracje include wewnątrz niego z ścieżką względną dla aktualnie użytego indexu.php. Co więc potrzebujemy zrobić w takiej sytuacji? Na pewno nie deklarujemy ścieżki w stylu: http://www... , bądź: $_SERVER[DOCUMENT_ROOT], mamy na to dużo lepszy i elastyczniejszy sposób obsługi.

 

Rozwiązanie

 

Odpowiedź na naszą zagadkę jest funkcja... (dalsza część artykułu załączona w kodzie)



Napisz Artykuł

Listing

Odpowiedź na naszą zagadkę jest funkcja dirname(), która zwaraca nam nazwę katalogu dla podanego parametru. W naszym przypadku musimy użyć go w połączeniu ze stałą __FILE__, która zwraca oryginalną ścieżkę do aktualnego pliku. Robimy to po przez:

include(dirname(__FILE__).'/baza.php');

Dzięki temu otrzymujemy ścieźkę bezwględną, z uwzględnieniem katalogu który jest tuż nad baza.php plikiem.

Jeśli potrzebujemy wejść jeden katalog powyżej, wystarczy dodać:

include(dirname(dirname(__FILE__)).'/baza.php');


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=12555

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38323
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors