Luồng tệp PHP
Luồng là tài nguyên được cung cấp bởi PHP mà chúng ta ít chú ý đến. Các luồng có thể được sử dụng như một công cụ rất mạnh mẽ và bằng cách khai thác sức mạnh của các luồng, chúng tôi có thể đưa ứng dụng của mình lên một cấp độ cao hơn. Luồng PHP được định nghĩa như sau (theo PHP Manual) Show
Mỗi luồng sẽ có một 2 trong đó tồn tại một số mã bổ sung cần thiết để xử lý các giao thức đặc biệt hoặc thực hiện công việc mã hóa. PHP cung cấp một số trình bao bọc sẵn có và chúng ta có thể dễ dàng tạo và đăng ký các biến thể bao bọc này cho riêng mình. Ngoài ra, chúng ta cũng có thể sửa đổi hoặc cải tiến tiến trình "hành vi" của các trình bao bọc sử dụng 3 và 4Luồng cơ bảnMột stream được tham chiếu dưới dạng 5 6Trình bao bọc mặc định sẽ là 7, điều này có nghĩa là mỗi khi chúng ta truy cập vào hệ thống tệp, chúng ta đều phải sử dụng qua luồng. Ví dụ với việc đọc tệp, ta có thể viết bằng hai cách là 8 hoặc 9, sẽ cho ra cùng một kết quả. Một ví dụ khác, nếu chúng ta có một đoạn mã là 0 thì khi đó chúng ta đang yêu cầu PHP sử dụng trình bao bọc HTTP Stream thay vì trình bao bọc Luồng tệpNhư mình đã nói bên trên, PHP cung cấp một số trình bao bọc sẵn có, giao thức cho các bộ lọc. Để tìm hiểu cụ thể hơn các hàm bao có sẵn với môi trường của bạn, chúng ta có thể sử dụng các hàm sau 1 2 3 Trên đây là cách vận chuyển, trình bao bọc và bộ lọc trên môi trường máy tính của mình, ngoài ra thì nếu cần thiết chúng ta cũng có thể viết thêm luồng cho Amazon S3, MS Excel, Google Storage, Dropbox hoặc thậm chí chí là cả Twitter php. // Vỏ bánhBản thân PHP cũng tự có cho riêng mình một trình bao bọc để có thể truy cập vào các luồng I/O. Một số trình bao bọc cơ bản như. php. //stdin, php. // thiết bị xuất chuẩn và php. //stderr was map to with I/O resource I/O default. PHP cũng có thêm php. //input is a read-only stream can be access direct to data raw of POST request. Điều này khá thuận tiện khi chúng ta đang làm việc với các dịch vụ từ xa mà dữ liệu tải trọng được đặt tại phần thân của một yêu cầu POST Cùng thử thực hiện kiểm tra thu nhỏ sử dụng curl nhé 4Kết quả của đoạn mã 5 trả về sẽ là
Lưu ý rằng chúng ta không thể lấy gói dữ liệu đầu tiên được lấy từ $_POST nhưng nếu thay vào đó chúng ta sử dụng 6 thì lại có thể đưa ra kết quả đầy đủ. 7PHP5. 1 giới thiệu thêm các trình bao bọc. php. // bộ nhớ và php. //temp used to read and write the temporary data. Bản thân tên của các trình bao bọc này cũng cho thấy rằng dữ liệu được lưu trữ tương ứng trong bộ nhớ hoặc trong một bộ tệp tạm thời được quản lý bởi hệ thống. Ngoài ra còn có thêm php. //bộ lọc, một trình bao bọc meta được thiết kế để có thể áp dụng các bộ lọc trong việc mở một luồng với các hàm như 8 hoặc 9 hoặc 0
Trong ví dụ đầu tiên chúng ta đã sử dụng thêm một bộ lọc để mã hóa dữ liệu ghi vào ổ đĩa. Ở ví dụ tiếp theo chúng ta có các bộ lọc được áp dụng cho việc đọc nội dung của một url từ xa. Hiệu quả của bộ lọc có thể từ rất đơn giản đến trở nên vô cùng mạnh mẽ Bối cảnh truyền phátMột bối cảnh là một luồng đặc biệt với một bộ tham số hoặc tùy chọn mà có thể sử dụng để thay đổi, hành động tối ưu của một trình bao bọc. Một trường hợp sử dụng phổ biên ngữ cảnh được sử dụng để thay đổi trình bao bọc HTTP. Điều này giúp chúng ta tránh sử dụng cURL cho các nhiệm vụ mạng đơn giản
Đầu tiên chúng ta sẽ định nghĩa mảng tùy chọn của mình với định dạng $array['wrapper']['option_name']. (mỗi một trình bao bọc sẽ cho một tập hợp các tùy chọn khác nhau). Sau đó chúng ta có thể gọi 1 để trả về ngữ cảnh mặc định và chấp nhận các tùy chọn mảng để thay thế cho các giá trị mặc định. Hàm 2 after that used to get data aboutTrong ví dụ này, nội dung được trả về thông qua nội dung của yêu cầu, tập lệnh điều khiển từ xa đó sử dụng php. // đầu vào có thể đọc nó, chúng ta có thể truy cập vào các tiêu đề bằng cách sử dụng hàm apache_request_headers() và thêm
Khi đó chúng ta đã thay đổi ngữ cảnh mặc định. Trong trường hợp bạn muốn sửa đổi bối cảnh nhưng không ảnh hưởng đến bối cảnh mặc định, thì bạn có thể tạo ra một bối cảnh mới dựa trên bối cảnh mặc định mà sử dụng chúng song song với nhau
Kết luậnQua những mô tả bên trên, có thể bạn đã thấy sức mạnh của PHP Stream, vì vậy nếu bạn muốn tìm hiểu thêm hoặc muốn khai thác sức mạnh của Stream trong ứng dụng của mình thì đừng ngại bắt tay vào làm thử. Như bạn có thể thấy, các luồng chia sẻ với nhau một phần hoặc tất cả các hàm liên quan đến hệ thống tệp, vì vậy cách tốt nhất là hãy tìm hiểu kỹ về hệ thống tệp và cố gắng triển khai một trình bao bọc tùy chỉnh để làm việc với hệ thống tệp nhé. Luồng PHP là gì?Giới thiệu luồng PHP
. Theo định nghĩa đơn giản nhất, luồng là một đối tượng tài nguyên thể hiện hành vi có thể truyền được. the way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior.
Làm cách nào để lấy dữ liệu luồng trong PHP?Để có quyền truy cập vào luồng đầu vào tiêu chuẩn, bạn có thể sử dụng php. //stdin , chỉ đọc.
Luồng đầu vào trong PHP là gì?php. // đầu vào là luồng chỉ đọc cho phép bạn đọc dữ liệu thô từ phần thân yêu cầu .
Kích thước bộ đệm của luồng PHP là gì?Theo thông tin trên, chúng ta có thể dễ dàng thấy rằng kích thước mặc định của bộ đệm PHP trong hầu hết các cấu hình là 4096 byte (4KB) . |