2009-02-23 22 views

Trả lời

46

./thư mục hiện tại. Nó phần lớn giống như chỉ file.php, nhưng trong nhiều trường hợp (bao gồm cả phần này) nó không kiểm tra bất kỳ vị trí chuẩn nào mà PHP có thể tìm kiếm tệp, thay vì chỉ kiểm tra chỉ thư mục hiện tại.

Từ PHP documentation (chú ý câu cuối cùng):

tập tin để bao gồm cả lần đầu tiên được tìm kiếm trong mỗi mục include_path tương đối so với thư mục làm việc hiện tại, và sau đó trong thư mục của kịch bản hiện hành. 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ó "b.php" trong tệp đó, b.php được xem lần đầu tiên trong/www/libraries/và sau đó vào/www/include /. Nếu tên tập tin bắt đầu bằng ./ hoặc ../, nó chỉ được xem trong thư mục làm việc hiện tại.

+1

vì vậy, yêu cầu ("./file.php"); nhanh hơn yêu cầu ("file.php"); ? – webelizer

8

Phiên bản đầu tiên buộc cơ chế nội bộ bao gồm các file tương đối so với ... trực tiếp tập tin thực thi. Vì vậy, ví dụ bạn có

index.php

// directly executed script (php -f index.php or from a browser) 
include 'second.php'; 

second.php

// This is included relatively to index.php 
// Actually, it is first searched relatively to include_path, then relatively 
// to index.php 
include './third.php'; 

third.php

// This is included relatively to second.php ONLY. It does not search 
// include_path 
return "foo"; 
+1

Bạn có bất kỳ bằng chứng (thủ công) nào cho điều này không? –

+0

Tôi đã có một vài sai lầm mà tôi đã sửa chữa, thứ tự tìm kiếm đã sai. Bằng chứng là câu trả lời ở trên của tôi. –

0

Đặt tên rõ ràng là thư mục hiện tại.

4

Chỉ cần bạn đang yêu cầu php đưa tệp vào thư mục hiện tại chỉ hoặc không thành công nếu tệp không có.

Nếu bạn sử dụng định dạng "indexcommon3.php" và tệp không phải là hiện tại php sẽ tìm kiếm nó trong biến hệ thống include_path.

Để tham khảo bạn có thể sử dụng http://www.php.net/manual/en/function.include.php

6

Câu trả lời ngắn

Bạn nói đúng, nó không phải lên một thư mục. A. đề cập đến thư mục bạn đang ở, và .. đề cập đến thư mục mẹ.

Ý nghĩa, ./file.php và tệp.php có chức năng tương đương trong PHP.Dưới đây là các trang có liên quan của tài liệu: http://us.php.net/manual/en/wrappers.file.php

câu trả lời dài hơn

Tuy nhiên, chỉ vì họ làm việc như nhau trong bối cảnh này không có nghĩa là họ luôn luôn giống nhau.

Khi bạn đang hoạt động trong môi trường vỏ * nix và bạn nhập tên tệp thi hành, trình bao sẽ tìm trong thư mục PATH, nhưng nó sẽ không tìm trong CWD hoặc thư mục bạn ' hiện lại trong

Vì vậy, nếu bạn đang ở trong một thư mục mà có một tập tin gọi là:. myprogram.php (điều này sẽ là một file PHP CLI) và bạn chỉ cần gõ:

myprogram.php

nó không quan trọng nếu chương trình của bạn có thể thực thi được hay không. Shell sẽ tìm trong/bin /,/usr/bin/etc cho tệp của bạn, nhưng nó sẽ không xem xét ./ hoặc thư mục bạn đang ở.

Để thực thi chương trình đó mà không cần thêm thư mục của bạn vào PATH, bạn cần phải gõ

./myprogram

Vì vậy, thực sự, ./ là rõ ràng hơn. Nó có nghĩa là, "các tập tin bạn đang tìm kiếm để được ngay tại đây" và không có./Có nghĩa là, "tập tin nên được một nơi nào đó chương trình tìm kiếm các tập tin".

4

Dấu chấm-chấm buộc chỉ tìm thấy tệp trong thư mục hiện tại, thay vì tìm kiếm thêm các đường dẫn được đề cập trong cài đặt include_path.

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