Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: includowanie - problem
Forum PHP.pl > Forum > PHP
kubal
Witam winksmiley.jpg

Mam problem z includowaniem jednego pliku z funkcjami (func.php). Plik ten znajduje się w katalogu "funkcje" a chcę go includować do pliku test.php który jest w katalogu "panel".

i tak wygląda plik test.php:
  1. <?php
  2. $rootpath = "../";
  3. include($rootpath . 'funkcje/func.php');
  4.  
  5. maxadmin ();
  6.  
  7. ?>


i byłoby wszystko ok gdyby nie w pliku func.php w funkcji maxadmin() ta linia $lines = file("funkcje/staff.txt"); i wywalają takie błędy
Cytat
Warning: file(funkcje/staff.txt) [function.file]: failed to open stream: No such file or directory in C:\Program Files\VertrigoServ\www\funkcje\func.php on line 162

Warning: Invalid argument supplied for foreach() in C:\Program Files\VertrigoServ\www\funkcje\func.php on line 163

Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\Program Files\VertrigoServ\www\ifunkcje\func.php on line 166


Bardzo proszę o pomoc sad.gif
Pozdr.

PS. mam nadzieje że zrozumieliście o co chodzi ;D
ziqzaq
Zgodnie z tym co napisałeś to powinno być: file("../funkcje/staff.txt"); bo wywołujesz fukcję w pliku test.php znajdującym się w "./panel/" a nie w "./funkcje/".

Obrazowo:
./
- funkcje/
--- func.php
--- staff.txt
- panel/
--- test.php <== tu wywołujesz funkcję
--- funkcje/
------ staff.txt <== próbujesz otworzyć ten (nieistniejący) plik
kubal
dzięki winksmiley.jpg teraz działa w pliku test.php tylko zapomniałem dodać że w głównym katalogu w pliku index.php też wywołuje tą funkcje... i tam teraz nie działa ; /
ziqzaq
1) Użyj ścieżki bezwzględnej (np. /home/konto/www/plik.txt)
2) Skorzystaj z magicznych stałych lub debug_backtrace do uzyskania pełnej ścieżki do pliku func.php.
Przykład uzyskania ścieżki:
  1. <?php
  2. // W pliku func.php
  3. $sciezka = dirname(__FILE__) . '/';
  4. ?>
kubal
wielkie dzięki tobie winksmiley.jpg dałem tak:
  1. <?php
  2. $sciezka = dirname(__FILE__) . '/';
  3. $lines = file("".$sciezka."../funkcje/staff.txt");
  4. ?>


i działa happy.gif

Pozdrawiam
ziqzaq
Troszkę się teraz przyczepię winksmiley.jpg
  1. <?php
  2. // $sciezka przechowuje cos w rodzaju '/home/.../funkcje/'
  3. $sciezka = dirname(__FILE__) . '/';
  4.  
  5. // Wiec tu jest niepotrzebne zagmatwanie
  6. // bo robisz cos takiego: '/home/jakies/tam/katalogi/funkcje/../funkcje/staff.txt'
  7. $lines = file("".$sciezka."../funkcje/staff.txt");
  8.  
  9. // Tak chyba bedzie przejzysciej ;)
  10. $lines = file($sciezka."staff.txt");
  11. ?>
kubal
no tak sciana.gif
dzięki ; ))
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.