PHP yolları dahil - ". /" Dosya ile anılır eğer başarısız dahil

2 Cevap php

Dahil dosyanın kendisi başka bir dosyayı içerir, ancak nokta öneki ile kendisine atıfta zaman içerir ile sorunlar yaşıyorum. Örneğin var üç dosyalarıdır - inc1.php, inc2.php ve subdir/test.php, içeriği vardır -

subdir / test.php:

set_include_path(get_include_path().":../:../.");
require("inc1.php");

inc1.php:

require("./inc2.php");

inc2.php

echo "OK";

Burada gösterilen dahil ağaç failed to open stream: No such file or directory hata ile başarısız olur. Inc1.php basit bir require("inc2.php"); içeriyorsa eğer ". /" Öneki olmadan çalışır. Ben ".. /." Eklendi için işe almak için bir girişim olarak yol içerir, ama bu hiçbir etkisi vardı.

". /" Öneki ile dahil sahne dışında, çözüm bu inc1.php ve inc2.php yazılabilir değildir ve sadece altdiz / test.php değiştirebilir varsayarak, burada nedir? Hala nasıl test.php içinde inc1.php içerebilir?

Başvuru için, ben PHP 5.2.9 kullanıyorum.

2 Cevap

Her zaman bunu yapmak için değil (very) zorunlu bir nedeniniz olmadıkça, aşağıdaki stilini kullanarak şunlardır:

include(dirname(__FILE__)."/inc2.php");

Bu baş ağrılarının her türlü kaydeder.

Basit bir chdir() Bu iş için görünür; : için dnm.php değişiyor

chdir("../");
require("inc1.php");

Bu "/". Inc1.php içinde 'şu dizine /' olarak yorumlanır, böylece ekleme yolu rağmen, sadece 'altdiz' klasöründe inc1.php arar gibi görünüyor.