2009-06-23 34 views
11

Nếu tôi có một file index.php trong đó bao gồm inc/footer.php Tôi sẽ viết:php bao gồm có cách nào để bao gồm một tệp tương đối chỉ với tài liệu đó không?

include 'inc/footer.php'; 

Nếu tôi muốn bao gồm một tập tin bên trong footer.php, tôi phải làm điều đó tương đối so với index.php tệp (tệp được bao gồm). Điều này có thể không phải là một vấn đề, nhưng nếu tôi muốn bao gồm index.php từ một địa điểm khác thì sao?

Tôi hiểu rằng có một số phương pháp để đạt được điều này như xác định đường dẫn tuyệt đối hoặc sử dụng tên đệm (FILE).

Đây là điều chưa bao giờ là vấn đề thực sự vì cách này hay cách khác tôi luôn tìm ra nhưng tôi luôn tự hỏi chính xác bao gồm cả công việc trong php.

Ai đó có thể giải thích cho tôi exaclty những gì đang xảy ra dưới mui xe?

Cảm ơn

Trả lời

31

này có thể giúp: (từ http://php.net/manual/en/function.include.php)

Files for bao gồm là lần đầu tiên nhìn cho trong mỗi mục include_path tương đối so với hiện tại làm việc thư mục, và sau đó trong thư mục của tập lệnh hiện tại. Ví dụ. nếu include_path của bạn là thư viện, thư mục làm việc hiện tại là/www /, bạn bao gồm/a.php và có bao gồm "b.php" trong tệp đó, b.php lần đầu tiên được xem trong/www/libraries/ và sau đó trong/www/include /. Nếu tên tập tin bắt đầu với ./ hoặc ../, nó được nhìn chỉ trong thư mục làm việc hiện tại hoặc cha mẹ của dòng điện thư mục làm việc, tương ứng

của bạn bang câu hỏi:

Nếu tôi muốn bao gồm một tệp khác bên trong footer.php, tôi phải làm điều đó liên quan đến tệp index.php (số tệp bao gồm nó).

Điều này đúng chỉ khi filepath bạn đang cố gắng để bắt đầu với include()./ hoặc ../. Nếu bạn cần phải bao gồm một tập tin trên tập tin hiện tại sử dụng một đường dẫn tương đối, bạn có thể (như bạn đề nghị) sử dụng:

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

Nếu bạn xác định một đường dẫn tuyệt đối, bạn cũng có thể thêm video này vào dòng điện include_path:

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

sau đó bạn có thể làm tất cả của bạn bao gồm liên quan đến '/ tuyệt đối/path /'.

-2

Nơi tốt nhất để tìm câu trả lời nằm trong hướng dẫn sử dụng PHP.

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

Câu trả lời ngắn: con đường là tương đối so với kịch bản PHP thực hiện không có tiểu bao gồm.

Đặt đường dẫn tuyệt đối chung cho các hàm của bạn, các thư mục lớp học vv là phương pháp tốt nhất.

+0

Bạn có muốn đặt nó bằng cách xác định hoặc thay đổi tệp ini không? – 0plus1

+1

Tôi có nghĩa là đặt nó làm định nghĩa. ví dụ: xác định ('CLASS_DIR', '/ path/to/classes /'); –

Các vấn đề liên quan