Giống như @deceze nói, thường thì câu trả lời là không. Tuy nhiên, bộ nhớ cache của hệ điều hành có thể lưu vào bộ nhớ cache các tập tin được sử dụng gần đây để truy cập nhanh hơn, nhưng tôi sẽ không tính vào những thứ có sẵn. Nếu bạn muốn cache một tệp đang được đọc nhiều lần cho mỗi yêu cầu, hãy xem xét sử dụng một biến tĩnh để hoạt động như một bộ nhớ cache bên trong một hàm bao bọc.
function my_file_read($filename) {
static $file_contents = array();
if (!isset($file_contents[$filename])) {
$file_contents[$filename] = file_get_contents($filename);
}
return $file_contents[$filename];
}
Gọi my_file_read ($ filename) nhiều lần sẽ chỉ đọc tệp từ đĩa một lần, các cuộc gọi tiếp theo sẽ đọc giá trị từ biến tĩnh trong hàm. Lưu ý rằng bạn không nên dựa vào phương pháp này cho các tệp lớn hoặc các tệp được sử dụng chỉ một lần trên mỗi trang, do bộ nhớ được sử dụng bởi biến tĩnh sẽ vẫn tồn tại cho đến khi kết thúc yêu cầu. Giữ nội dung của các tập tin không cần thiết trong các biến tĩnh là một cách hay để làm cho tập lệnh của bạn trở thành một bộ nhớ.
Nguồn
2013-12-25 00:30:54
Câu trả lời ngắn gọn: Số – deceze
file_get_contents về cơ bản chỉ là một phím tắt cho fopen, fread, fclose vv - vì vậy tôi tưởng tượng mở một con trỏ tập tin và gõ nó không được lưu trữ. – Jimbo
Có chức năng đọc tập tin trong PHP mà tôi có thể chọn '$ cache = true' không? – silkfire