Hướng dẫn php read and write json file - php đọc và ghi tệp json
Tôi có JSON sau trong một tệp 7: Show
Làm cách nào để thêm 8 vào tệp của tôi bằng PHP?Đây là những gì tôi có cho đến nay:
Điều này cho tôi một lỗi nghiêm trọng: Không thể sử dụng đối tượng của loại stdclass làm mảng trên dòng này:
Tôi đang sử dụng PHP5.2. Bất kỳ suy nghĩ? Cảm ơn! JSON (ký hiệu đối tượng JavaScript) là một định dạng tệp tiêu chuẩn để trao đổi dữ liệu giữa các ứng dụng. Trong hướng dẫn này, chúng tôi sẽ học cách thực hiện thao tác phổ biến nhất, chẳng hạn như mã hóa, giải mã và chuyển đổi JSON thành mảng và mảng thành JSON với sự trợ giúp của các ví dụ. Chúng tôi cũng sẽ khám phá cách đọc và viết các tệp JSON trong PHP. Cuối cùng, chúng ta sẽ xem xét cách truyền phát một tệp JSON lớn trong khi sử dụng rất ít bộ nhớ. Toàn bộ mã và ví dụ có sẵn trong kho lưu trữ GitHub; Nó được đóng gói như một dự án Symfony đơn giản và cung cấp hình ảnh Docker. Ví dụ về chuỗi JSONTrong hướng dẫn này, chúng tôi sẽ sử dụng chuỗi JSON sau đây chứa danh sách phim và thuộc tính của chúng.
Chuyển đổi chuỗi JSON thành một mảng kết hợp bằng cách sử dụng json_decodeChúng tôi sử dụng 9 để chuyển đổi (giải mã) chuỗi thành mảng kết hợp PHP.Tham số thứ hai của 9 chỉ định nếu chúng ta muốn lấy mỗi đối tượng JSON dưới dạng một mảng kết hợp hoặc là một đối tượng. Ở đây, chúng tôi đi cho tùy chọn mảng kết hợp.
Kết quả là một mảng chứa một mảng kết hợp cho mỗi bộ phim. Các khóa của mỗi mảng kết hợp là các trường của đối tượng JSON.
Chuyển đổi một mảng kết hợp thành chuỗi JSON bằng cách sử dụng json_encodeChúng tôi sử dụng 1 để chuyển đổi (mã hóa) mảng kết hợp thành chuỗi JSON.Tham số thứ hai của 1 chỉ định định dạng của chuỗi. Chúng ta có thể đi cho tùy chọn nhỏ gọn theo mặc định. Chúng ta cũng có thể sử dụng định dạng đẹp; Nó bao gồm các giao dịch và không gian để làm cho kết quả có thể đọc được nhiều hơn.
Định dạng chuỗi JSON nhỏ gọn:
Định dạng chuỗi JSON xinh đẹp:
Đọc tệp JSON trong PHPChúng tôi sẽ sử dụng cùng một định dạng ở đây; Tệp 3 chứa danh sách 10 bộ phim:
Chúng tôi phân tích tệp JSON bằng các hàm PHP gốc:
0Kết quả: 1Viết tệp JSON trong PHPChúng tôi tạo và viết một tệp JSON từ một mảng kết hợp:
2CSV cho các giá trị được phân tách bằng dấu phẩy là một định dạng tiêu chuẩn khác để trao đổi dữ liệu giữa các ứng dụng và việc chuyển đổi từ JSON sang CSV (và từ CSV sang JSON) khá đơn giản. Ra khỏi trí nhớ!Khi đọc một tệp JSON lớn, bạn sẽ nhanh chóng gặp phải sự cố tiêu thụ bộ nhớ: "Lỗi: cho phép kích thước bộ nhớ của x byte cạn kiệt". Nó bình thường! Các phương thức gốc tải toàn bộ nội dung trong bộ nhớ. Bạn có thể nâng 1 cho đến khi đạt đến giới hạn bộ nhớ của máy chủ. Một số tập tin lớn đến mức nó sẽ không đủ.Tin tuyệt vời, có một cách tiếp cận khác;Hãy khám phá nó. Truyền phát một tệp JSON lớnChúng tôi sử dụng tệp JSON bao gồm các bản ghi phim 500K;Nó có trọng lượng gần 300MB: 3Chúng tôi sẽ cài đặt và sử dụng thư viện 2. 4
JSON Machine là một trình phân tích cú pháp luồng PHP JSON hiệu quả dựa trên các trình tạo. Đọc tệp JSON lớn của chúng tôi: 5Và đây là kết quả: 6Có, chúng tôi đã phân tích các bản ghi JSON 500K của chúng tôi trong 20 giây và chỉ sử dụng 8MB! Chúng tôi không thể dự đoán tệp sẽ tích hợp lớn như thế nào trong một số trường hợp.Sử dụng phương pháp phát trực tuyến sẽ làm cho mã của bạn mạnh mẽ hơn, nhanh chóng, tiết kiệm bộ nhớ và chống trong tương lai. Tải xuống mã và ví dụBạn có thể tìm thấy tất cả các mã và ví dụ trong kho GitHub này. Nó được đóng gói như một dự án Symfony đơn giản, một bộ lệnh, nó cũng đi kèm với hình ảnh Docker.🐋 |