fopen
không thành công khi tôi cố gắng đọc trong một tệp có kích thước rất vừa phải trong PHP
. A 6 meg file
làm cho nó bị nghẹt thở, mặc dù các tệp nhỏ hơn xung quanh 100k
vẫn ổn. Tôi đã đọc rằng đôi khi cần phải biên dịch lại PHP
với cờ -D_FILE_OFFSET_BITS=64
để đọc các tệp trên 20 hợp đồng biểu diễn hoặc điều gì đó vô lý, nhưng tôi không nên gặp vấn đề với tệp 6 meg? Cuối cùng, chúng tôi sẽ muốn đọc trong các tệp có dung lượng khoảng 100 megabyte, và sẽ tốt hơn nếu có thể mở chúng và sau đó đọc qua chúng theo từng dòng với các fgets như tôi có thể làm với các tệp nhỏ hơn.Đọc các tệp rất lớn trong PHP
gì là thủ đoạn của bạn/giải pháp cho việc đọc và làm các hoạt động trên các tập tin rất lớn trong PHP
?
Cập nhật: Dưới đây là một ví dụ về một codeblock đơn giản mà không thành công trên tập 6 meg của tôi - PHP dường như không ném ra một lỗi, nó chỉ trả về false. Có lẽ tôi đang làm một cái gì đó cực kỳ ngu ngốc?
$rawfile = "mediumfile.csv";
if($file = fopen($rawfile, "r")){
fclose($file);
} else {
echo "fail!";
}
Cập nhật khác: Cảm ơn sự giúp đỡ của bạn, nó đã trở thành một điều cực kỳ ngu ngốc - vấn đề quyền. Tập tin nhỏ của tôi không hiểu sao có quyền đọc khi tệp lớn hơn không. Doh!
Bạn chỉ cần cố gắng để vượt qua các tập tin qua? I E. Tải về? Hoặc bạn có thực sự phân tích dữ liệu trong các tệp cho một số mục đích không? Cám ơn. – DreamWerx
nó không nên thất bại mà không tạo ra một cảnh báo/lỗi. Vui lòng tắt tất cả các lỗi bằng error_reporting (E_ALL) và đảm bảo display_errors được đặt thành bật để hiển thị trong trình duyệt của bạn hoặc kiểm tra nhật ký lỗi máy chủ web của bạn. –