Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MAC OS][PHP] Require,include dziala inaczej?
Forum PHP.pl > Forum > PHP
deirathe
mam taka strukture katalogow w projekcie:
index.php
katalog/
/req.php
/req2.php

plik req2.php:
  1. <?php
  2. require_once("katalog/req.php");echo "dwa";
  3. ?>

plik req.php:
  1. <?php
  2. echo "raz";
  3. ?>

plik index:
  1. <?php
  2. require_once("katalog/req2.php");echo "trzy";
  3. ?>

odpalam index.php
i dostaje blad z ktorego wynika ze require w pliku req2.php powinien posiadac sciezke "req.php" a nie "katalog/req.php", a tak byc nie powinno, czy mozna to jakos zmienic w ustawieniach serwera?? bo dostaje juz szalu grzebalem w kodzie godzinami i dopiero teraz do tego doszedlem a bezsensu jest zebym przerabial te sciezki skoro pozniej bede wszystko wgrywal na serwer linuxowy gdzie bedzie to dzialac normalnie. Jakies sugestie? Dzieki z gory
nospor
Cytat
i skoro pozniej bede wszystko wgrywal na serwer linuxowy gdzie bedzie to dzialac normalnie
Na linuksie bedzie dzialac ci tak samo źle smile.gif

Skoro jest w katalogu glownym to kazde odwolaanie względne bedzie sie odnosic do katalogu glownego, nawet te odwolania z podkatalogow smile.gif
deirathe
Ok, jeszcze raz bo moze sie nie zrozumielismy:
na roocie jest plik index.php i katalog o nazwie katalog
w katalogu dwa pliki req1.php i req2.php
w pliku req1.php jest require("katalog/req2.php") a w pliku req2.php jest echo "pupa";
w pliku index.php mam require("katalog/req1.php") i po odpaleniu powinienemdostac informacje "pupa"
i tak jest na linuxie a na MAC OS nie.
Nie wiem czy teraz jasno wytlumaczylem?
nospor
Masz racje, przepraszam, źle zinterpretowalem pierwsze kody.

w req2.php daj:
  1. <?php
  2. require_once(dirname(__FILE__)."/req.php");echo "dwa";
  3. ?>

powinno dzialc wszedzie
NuLL
I bedzie dzialac smile.gif PHP na OSX zachowuje sie dokladnie tak samo jak na kazdym inny UNIXie smile.gif
deirathe
dzieki... no to lipa, a możecie podrzucić jakiś pomysł co zrobić żebym później nie musiał wszystkich plików edytować z odniesieniami?
nospor
W poprzednim poście podalem ci rozwiązanie. Nie dziala?
deirathe
Sorry nie zauważyłem już sprawdzam smile.gif
Nie dokonca, bo mam np dynamiczne includowanie i wtedy caly system mi sie pierdyknie, jezeli to cos pomoze moge umiescic caly framework, tylko tyle ze nieskonczony jeszcze jest przez te includy
nospor
skoro req i req2 lezą w tym samym katalogu to co ma do tego dynamiczne ladowanie?

Ja to robie u siebie jeszcze inaczej. Ustalam sciezke glowną do aplikacji i wszystkie includy robię na podstawie tej sciezki. Dziala wowczas wszedzie
deirathe
Tak to byl taki przyklad pogladowy. Zeby bylo zabawnie to ta opcja tez pod osem X raczej slabo sie sprawdza bo dostaje np:
/Volumes/home/Library/Application Support/Eclipse/frea
i teraz jak zrobie to o czym mowiles to on nie traktuje katalogu /Volumes/ jako katalogu glownego tylko jako podatalog w ktorym znajduje sie skrypt. totalny idiotyzm sad.gif


Chyba pozostaje metoda chalupnicza ;(
dr_bonzo
__autoload() ? i po problemie
deirathe
nie do konca chyba zrozumiales o co chodzi z tymi includami, problem nie lezal w tym jak dynamicznie ladowac pliki, tylko w tym ze w inny sposob je trzeba zalaczac. Ze sciezki wzgledne zawsze zaleza od pliku w ktorym includujemy inny plik, poczytaj wyzej.
qbs
mozesz sprobowac sie pobawic modyfikacja ini_set'em wartosci include_path. wowczas nie bedziesz musial sie bawic w ogole ze sciezkami. jakie sa wady? mozliwy konflikt nazw plikow oraz potencjalne niebezpieczenstwo ze zaladujesz plik ktorego nie chcesz (shell etc) winksmiley.jpg no i jak serwer ma zablokowana ta funkcje to pies pogrzebany winksmiley.jpg
deirathe
Wymyśliłem już i działa postawiłem w pliku konfiguracyjnym aplikacji sciezke glowna i okazalo sie ze zeby dzialala musi sie zaczynac od "/" dziwne te unixy, ale dziala. Dzieki za pomoc i zainteresowanie
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.