PHP referans yolu için bir rehber var mı?

2 Cevap php

I know how to include files that are in folders further down the heirachy but I have trouble finding my way back up. I decided to go with the set_include_path to default all further includes relative to a path 2 levels up but don't have the slightest clue how to write it out.

Yol PHP için başvuran detayı kılavuzu yerde var mı?

2 Cevap

Ben mevcut yol almak ve daha sonra gelecekteki tüm yol adlarını hesaplamak için bir üs olarak kullanmak için dirname kullanma eğiliminde.

Örneğin,

$base = dirname( __FILE__ ); # Path to directory containing this file
include( "{$base}/includes/Common.php" ); # Kick off some magic

Sadece başvuru için mutlak yolunu kullanmak muhtemelen daha kolay:

set_include_path('/path/to/files');

tüm gelecek için bir referans noktası var bu yolu içerir. içeren belirli senaryolarda biraz karışıklık neden olabilir denirdi noktasına göre işlenir.

Örnek olarak, örnek bir klasör yapısı verilen (/home/files):

index.php
test/
  test.php
test2/
  test2.php

// /home/files/index.php
include('test/test.php');

// /home/files/test/test.php
include('../test2/test2.php');

Eğer index.php ararsanız, o aşağıdaki dosyaları dahil etmek için çalışacağız:

/home/files/test/test.php // expected
/home/test2/test2.php // maybe not expected

Eğer beklediğiniz olmayabilir ki. beklendiği gibi test.php çağrı /home/files/test2/test.php arayacak.

Sonuç olarak, içeren orijinal arama noktasına göreli olacaktır. o da göreceli olup olmadığını açıklığa kavuşturmak için, bu set_include_path() etkiler. (aynı dizin yapısını kullanarak) aşağıdaki düşünün:

<?php
// location: /home/files/index.php
   set_include_path('../'); // our include path is now /home/

   include('files/test/test.php'); // try to include /home/files/test/test.php
   include('test2/test2.php'); // try to include /home/test2/test2.php
   include('../test3.php'); // try to include /test3.php
?>