2009-06-23 11 views
11

ben yazardım:php yalnızca bu dokümana dosya göreli dahil etmek için herhangi bir yol yoktur içerir? Ben inc/footer.php içeren bir index.php dosyası varsa

include 'inc/footer.php'; 

Ben footer.php içine başka bir dosya eklemek istiyorsanız, ben index.php için bu göreceli yapmalıdır dosya (dahil olanı). Bu bir sorun olmayabilir, ancak index.php'yi farklı bir konumdan eklemek istiyorsam ne yapmalıyım?

Mutlak bir yol tanımlamak veya dirname kullanmak (DOSYA) gibi çeşitli yöntemler olduğunu anlıyorum.

Bu şu veya bu şekilde hep bunu anladım başka yana ama her zaman php çalışmaları içermektedir tam olarak nasıl merak gerçek bir sorun olmamıştı şeydir.

biri bana exaclty neyi başlık altında oluyor açıklayabilir misiniz?

Teşekkür

cevap

31

Bu yardımcı olabilir: (http://php.net/manual/en/function.include.php itibaren)

Files dahil içindir ilk her include_pathdaki girişindeki akım için göreli dizinde sonra çalışma dizini ve için baktı geçerli komut dosyasının Örneğin. senin include_pathınız kütüphaneler, eğer çalışma dizini/www /, sen dahildir akım/a.php dosyasını include ve ilk/www/kütüphaneler aranır b.php, bu dosyada "b.php" include var/ ve/www// bulunmaktadır.

: Dosya adı ./ veya ../ ile başlıyorsa, yalnızca geçerli mevcut çalışma dizin veya ebeveyn sırasıyla,

Sorunuz durumlarını dizini çalışmak için aranır Ben footer.php içine başka bir dosya eklemek istiyorsanız, bunu index.php dosyasına göre (o dahil edilir bir) yapmanız gerekir.

bu durum geçerlidir sadece eğer ./ veya ../ ile include() başlar çalışıyoruz filepath. Eğer göreli bir yol kullanarak mevcut dosyasının üzerinde bir dosya eklemek için gerekirse, (sizin önerdiğiniz gibi) kullanabilirsiniz: Eğer mutlak bir yol tanımlarsanız

include(dirname(__FILE__) . '/../file.php') 

, ayrıca akıma bu ekleyebilir include_path:

set_include_path(get_include_path() . PATH_SEPARATOR . '/absolute/path'); 

Tüm içeriğinizi '/ absolute/path /' ile göreceli olarak yapabilirsiniz.

-2

cevap bulmak için en iyi yer PHP kılavuzunda olduğunu.

http://php.net/manual/en/function.include.php

Kısa cevap: yolu yok alt içerir yürütme PHP script göre olur.

İşlevlerinize genel bir mutlak yol belirlemek, sınıflar vb. Klasörler en iyi yöntemdir.

+0

Bunu ini dosyasında bir tanım veya değiştirme ile ayarlamak bette mi? – 0plus1

+1

Bunu bir tanım olarak ayarla. örn. define ('CLASS_DIR', '/ yol/to/classes /'); –

İlgili konular