Php bu göreli bağlantı neden çalışmıyor kimse açıklayabilir misiniz?

3 Cevap

Şimdiye kadar başım çizilmeye beni terk etti garip bir sorun var.

Ben bir common.php ile bir indeks sayfası uzak bir kaç klasör dosya gerektirir var. Gerektiren dosyasında common.php olarak aynı klasörde olmak hepsi ama iki ile altı komut vardır.

Yani aynı klasörde komut için ben sadece çalışıyor, hangi dosya adını Ör-gerektirebilir ('filename.php') kullanın. Kalan iki komut bitişik bir klasör adında config yani ('.. / Config / file.php') gerektiren kullanmayı deneyin ama çalışmıyor.

Ben o inşaat endeksi dosyasından göreli yolu kullanırsanız garip şey?

Nasıl dosyalar aynı klasörde ancak zaman farklı bir klasöre eğer common.php göredir yolları kullanabilir geliyor?

Şu anda o kadar herhangi bir yardım büyük mutluluk duyacağız kaçar beni mantıklı bir açıklaması vardır eminim.

thanks J

3 Cevap

Olarak anladığım kadarıyla, siz dahil dosyaları içindeki dosyaları dahil. Bildiğim kadarıyla ben düşünüyorum, ".. /" bir çeviri mevcut çalışma dizini değil, dahil dosyasının bulunduğu dizin bağlıdır - ama emin değilim. Her neyse, bu satırlar boyunca bir şey ile içerdiği dosyaların içindeki sorunu geçici olarak çözebilirsiniz:

Varsayarsak:

  • index.php dosyası içinde bulunan C:/inetpub/wwwroot/project1
  • inc01.php dosyası içinde bulunan C:/inetpub/wwwroot/project1/include/
  • cfg01.php dosyası içinde bulunan C:/inetpub/wwwroot/project1/config/

index.php içerir:

require( "include/inc01.php" );

Bakılmaksızın inc01.php iç cfg01.php eklemek için konteyner komut dosyası olup olmadığını / index.php / admin / index.php / products / dizüstü / index.php:

require( dirname( dirname( __FILE__ ) ) . "/config/cfg01.php" );

İlk dizinadı inc01.php var olduğu dizin adını döndürür. İkincisi üst dizinini döndürür. Bunun yerine ileri veya geri bölü kullanmak isteyip endişe sabiti DIRECTORY_SEPARATOR kullanabilirsiniz. Siz böylece ../../ almak için dizinadı üç kez kaskad edebilirsiniz.

Öncelikle bu gibi yolunu ayarlamak

set_include_path(get_include_path() . PATH_SEPARATOR . realpath("./")); //change accordingly the path e.g. path to common.php

ve sonra komut gerekli dosyayı kullanabilirsiniz.

klasörü herhangi tesadüfen dahil-yol common.php kısmını içeren mi? index sayfasında sadece yerine common.php için göreli yolun ('common.php') gerekiyorsa, yani hala onu almak nedir?