v2.5.2
Giriş yap

Göreceli adres sorunsalı

munzevi
233 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhaba,

test aşamasında sınıfımı yazarken ana dizinde çalıştım, sorunsuz çalışınca olması gerektiği dizine alıp çalıştırmak istedim, ancak yol konusunda php'nin ve benim kafalarımız çok karışık.

C:\xampp\htdocs\site vhost da site.com olarak yönlendirdim
site.com/alan kısmıda çalışma alanım.
site.com/alan/core/control.php tüm istekleri denetleyen kontrolcüm.
control.php adresine site.com/alan adresinden bir post isteğinde bulunduğumda site.com/alan/core/classes/posts tarafından denetim yapıldıktan sonra Directories adında bir sınıf (yol sorunu yaşadığım sınıf bu) dahil edilerek parametrelere göre çalıştırılıyor. dosyanın açılmasında sıkıntı yok, kendi hata kayıtlarımı da apache'den farklı olarak tutup denetliyorum zaten, bir hata yok. test aşamasında iken alt dizinlere erişerek işlem gerçekleştirmiştim. şimdi üst dizinlerden çalışması gerekiyor, ancak is_file ve is_dir beklenildiği gibi davranmıyor. tam ve doğru yolu belirtmeme rağmen göreceli olduğu için, değer false olarak sonuçlanmakta.

echo str_replace('\\', '/', realpath(__DIR__ . "../../../../"));
// çıktısı C:/xampp/htdocs/site
echo is_dir("../../");
// çıktısı C:/xampp/htdocs/site yolu için true
//ilk çıktının kontrolünü is_dir ile yapamıyorum, çünkü is_dir kararsız davranarak göreceli yolu __DIR__ durumuna göre 4 dizin yukarıda değil 2 dizin yukarıda görmekte.

is_dir için yeni bir method yazıp, kontrolü bu method ile yapayım dedim. ancak yine kararsızlık devam etti. fikri olan var mı?

Cevap yaz
Cevaplar (1)
munzevi
762 gün önce

Çözdüm;

chdir("../../"); //

dosyanın başına ekleyip is_file ve is_dir'lere müdahale etmedim. dizinleride DIR yerine;

 str_replace('\\', '/', getcwd())."/$value";

şeklinde bildirdim. tamamdır. yinede kafam hala karışık. 2 dizin üste çıktığıma göre, DIR kararsızlık yaratıyormuş, sebebeni anlayamadım hala.