İç içe php kullanarak içerir '. /'

5 Cevap

Ben birkaç PHP dosyaları () birkaç diğer dizinleri ing diğer dosyaları içermektedir var.

Bu dahil dosyalardan biri: foo/bar.php, ben bar.php dizin foo bulunan 3 diğer dosyaları eklemek istiyorum. Ancak bar.php aslında çok başka bir başka dosya ile birlikte başka bir dizine dosyanın, tarafından dahildir.

Ben yaptım:

include('./apple.php');
include('./orange.php');

In foo/bar.php, ne olursa olsun dosya kendi içinde bar.php dahil olan foo dizinden doğru dosyaları yer alacak?

5 Cevap

Bunun yerine aşağıdaki kullanın:

include(dirname(__FILE__).'/apple.php');

Ben ne gönderdiniz güvenilir ya da çalışmak eğer biliyorum, ama bu irade yok.

Gibi bir kenara, genellikle yanlışlıkla genelgesi veya çift eklenmesi ile sorunları önlemek için include_once() or require_once() kullanmalısınız kütüphaneler olmak üzere zaman.

Benim public_http kök klasörünün dışında bir dizin içerir yapılmış sorun bu tür vardı, ve son kez include_path ini yapılandırmaya yolunu eklendi. Dosyaları da dahil olmak üzere hiçbir sorun yoktu. Hatta organizasyon için bu özel include_folder içinde klasörler ekleyebilirsiniz.

Söylesene, header.php, footer.php, calendar.php var ve "şablon" dahil olarak menu.php ve bazı işlevler / sınıfları gibi encription.php, authentication.php, permissions.php olarak içerir. Sen senin gibi klasörü içeren hepsini saklamak olabilir:

  • custom-include-folder
    • template
      • header.php
      • footer.php
      • calendar.php
      • menu.php
    • libs
      • encription.php
      • authentication.php
      • permissions.php

Ve doğrudan kullanımı gibi

include 'template/header.php

include() ve require(), genellikle (en azından apache altında) talep yazısının aynı dizin geçerli çalışma dizininin getcwd(), göreli olacaktır. CLI modunda Ancak, bu $ PWD miras budur;

Bu yüzden,

include(dirname(__file__) . '/include.php');

iyi bir yaklaşım.