Loading:


    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');




    Dodano przez: divix
    Ranga: Administrator serwisu Punktów: 0
    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-2025 v.1.5 | design: diviXdesign & rainbowcolors