Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Czy moge zdefiniowac katalog, w ktorym sa include-y
Forum PHP.pl > Forum > Przedszkole
Berkovits
Mam taki problem. Chcialbym, aby dołączane skrypty (include 'skrypt.php') były pobierane z konkretnego katalogu zapamietamego w zmiennej $sciezka_dostepu.

Moge to zrobic tak:
  1. <?php
  2. include $sciezka_dostepu.'/skrypt1.php';
  3. include $sciezka_dostepu.'/skrypt2.php';
  4. include $sciezka_dostepu.'/skrypt3.php';
  5. ?>

Czy jest jakas mozliwosc wybrania katalogu, a potem pisanie nazw plikow .php bez sciezki? Cos w stylu:

  1. <?php
  2. change_directory($sciezka_dostepu);
  3. include 'skrypt1.php';
  4. include 'skrypt2.php';
  5. include 'skrypt3.php';
  6. ?>

To samo tyczyloby sie wpisywania adresow do odnosnikow: <a href=...>.
grom44
do tego typu rzeczy używam fubkcji chdir() ( bool chdir ( string $katalog ) )
http://pl.php.net/manual/pl/function.chdir.php
qqrq
PHP-owe includy i HTML-owe odnośniki to zupełnie inne rzeczy:
- jeśli chodzi o include możesz użyć set_include_path i get_include_path (po prostu dodać katalog do bieżącej ścieżki)
- co do odnośników, pokombinuj z plikami HTACCESS (poczytaj w manualu Apacha); można za ich pomocą robić niezłe cuda na kiju... smile.gif
Berkovits
Dzieki Wam za pomoc. Ciekawe smile.gif

Poczytałem troche o plikach .htaccess zgodnie z propozycja qqrq i mam pytanie. Jesli dobrze zrozumialem, to aby serwer przejmował się tymi plikami musi być odpowiednio skonfigurowany (chyba AllowOverride musi być ustawiony na odpowiednią wartosc). Czy jest jakaś możliwość (poza kontaktem z administratorem serwera), by dowiedzieć się tego?

Pomyslalem, ze echo $_SERVER['AllowOverride'] zadziala, ale chyba mieszam zmienne ustawione w httpd.conf ze zmiennymi $_SERVER.

Pytam się, bo serwer w ogóle nie reaguje na pliki .htaccess, mimo iż na serwerze, ktory postawilem na moim komputerze (Apache) dziala. Moze pliki .htaccess sa rozpoznawane jedynie przez serwer Apache, a serwer z moja strona jest inny? Jak sie tego dowiedziec?
Cysiaczek
To, co chcesz rozbić ewidentnie robi się przy pomocy set_include_path(), a wszelka zabawa z htaccess jest bez sensu (chyba, ze maszjakąś dziwną konfigurację php). Zdecydowanie odradzam pliki htaccess.

Pozdrawiam.
qqrq
Cysiaczek => No ale jak w PHP dodasz do include path jakiś katalog (np. "kat"), to jak masz odnośnik np. do strony "strona.html" w katalogu kat, to odwołanie się bezpośrednio do "strona.html" a nie do "kat/strona.html" wywali 401, a o to chyba chodziło Berkovits-owi (jak się mylę to mnie poprawcie ma się rozumieć)...
Cysiaczek
No tak - nic nie jest doskonałe. Można też napisać nakładkę loadFile() i po problemie. Coś jak autoloader dla klas.

Pozdrawiam.
Berkovits
Dokladnie o ten problem mi chodzilo, qqrq. No cóż, przemyślę to, co napisaliście i pokombinuję.

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.