ADVERTISEMENT
  • Trang chủ
  • Tin Tức
  • Liên hệ
Thứ Hai, Tháng Sáu 5, 2023
Tin Tức Giáo Dục Học Tập Tiny
No Result
View All Result
  • Giáo Án
  • Học Tập
    • Lớp 1
    • Lớp 2
    • Lớp 3
    • Lớp 4
    • Lớp 5
    • Lớp 6
    • Lớp 7
    • Lớp 8
    • Lớp 9
    • Lớp 10
    • Lớp 11
    • Lớp 12
  • Sách Tham Khảo
    • Sách Tham Khảo Lớp 1
    • Sách Tham Khảo Lớp 2
    • Sách Tham Khảo Lớp 3
    • Sách Tham Khảo Lớp 4
    • Sách Tham Khảo Lớp 5
    • Sách Tham Khảo Lớp 6
    • Sách Tham Khảo Lớp 7
    • Sách Tham Khảo Lớp 8
    • Sách Tham Khảo Lớp 9
    • Sách Tham Khảo Lớp 10
    • Sách Tham Khảo Lớp 11
    • Sách Tham Khảo Lớp 12
  • Ôn Thi
    • Thi THPT Quốc Gia
    • Địa Lý
    • Giáo Dục Công Dân
    • Hóa Học
    • Lịch Sử
    • Ngoại Ngữ
    • Ngữ Văn
    • Sinh Học
    • Vật Lý
    • Toán Học
  • Sách Kinh Tế
  • Sách Ngoại Ngữ
    • Tiếng Nhật
    • Tiếng Pháp
    • Tiếng Trung
  • Biểu mẫu
    • Giáo dục – Đào tạo
  • Sách Văn Học
  • Sách Y Học
  • Tài Liệu
    • Thủ tục hành chính
    • Việc làm – Nhân sự
    • Y học
    • Bộ đội – Quốc phòng – Thương binh
    • Doanh nghiệp
    • Giáo dục – Đào tạo
    • Giao thông vận tải
    • Hôn nhân – Gia đình
    • Quyền Dân sự
    • Tin Tức
  • Tâm Lý & Kỹ Năng
  • Giáo Án
  • Học Tập
    • Lớp 1
    • Lớp 2
    • Lớp 3
    • Lớp 4
    • Lớp 5
    • Lớp 6
    • Lớp 7
    • Lớp 8
    • Lớp 9
    • Lớp 10
    • Lớp 11
    • Lớp 12
  • Sách Tham Khảo
    • Sách Tham Khảo Lớp 1
    • Sách Tham Khảo Lớp 2
    • Sách Tham Khảo Lớp 3
    • Sách Tham Khảo Lớp 4
    • Sách Tham Khảo Lớp 5
    • Sách Tham Khảo Lớp 6
    • Sách Tham Khảo Lớp 7
    • Sách Tham Khảo Lớp 8
    • Sách Tham Khảo Lớp 9
    • Sách Tham Khảo Lớp 10
    • Sách Tham Khảo Lớp 11
    • Sách Tham Khảo Lớp 12
  • Ôn Thi
    • Thi THPT Quốc Gia
    • Địa Lý
    • Giáo Dục Công Dân
    • Hóa Học
    • Lịch Sử
    • Ngoại Ngữ
    • Ngữ Văn
    • Sinh Học
    • Vật Lý
    • Toán Học
  • Sách Kinh Tế
  • Sách Ngoại Ngữ
    • Tiếng Nhật
    • Tiếng Pháp
    • Tiếng Trung
  • Biểu mẫu
    • Giáo dục – Đào tạo
  • Sách Văn Học
  • Sách Y Học
  • Tài Liệu
    • Thủ tục hành chính
    • Việc làm – Nhân sự
    • Y học
    • Bộ đội – Quốc phòng – Thương binh
    • Doanh nghiệp
    • Giáo dục – Đào tạo
    • Giao thông vận tải
    • Hôn nhân – Gia đình
    • Quyền Dân sự
    • Tin Tức
  • Tâm Lý & Kỹ Năng
No Result
View All Result
Tin Tức Giáo Dục Học Tập Tiny
No Result
View All Result
ADVERTISEMENT

Trang chủ » Blog » Hướng dẫn dùng streaming string trong PHP

Hướng dẫn dùng streaming string trong PHP

Sam Van by Sam Van
27 Tháng Mười, 2022
in Blog
0
Hướng dẫn dùng streaming string trong PHP
ADVERTISEMENT
ADVERTISEMENT
5 cách đăng xuất tài khoản Tango để đăng nhập lại trên điện thoại 3

Streams là các tài nguyên được cung cấp bởi PHP mà chúng ta ít để ý đến. Streams có thể được dùng như là công cụ rất mạnh mẽ và bằng cách khai thác sức mạnh của Streams, chúng ta có thể đưa ứng dụng của mình lên một level cao hơn. PHP Streams được định nghĩa như sau (theo PHP Manual)

Có thể bạn quan tâm
  • Cách làm gà nướng nguyên con bằng lò nướng
  • 6 yếu bóng vía hay nặng bóng vía gặp ma hot nhất hiện nay
  • 6 cách tháo máy ép chậm hay nhất, bạn nên biết
  • 5 khối b00 gồm những môn nào hay nhất
  • Top 6 đóng băng zenly tốt nhất, đừng bỏ qua

Streams were introduced with PHP 4.3.0 as a 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. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.

Streams được giới thiệu lần đầu ở phiên bản PHP 4.3.0 như một cách để khái quát hóa cho File , Network, Data compression và các tiến trình khác trong đó dùng chung một tập hợp các functins hoặc có chung cách sử dụng. Một cách định nghĩa đơn giản hơn,
Stream là một nguồn tài nguyên đổi tượng đại diện cho cách hành vi có thể stream được. Theo đó Stream có thể được đọc, ghi vào theo một phong cách “tuyến tính” và có thể được fseek() đến một vị trí bất kỳ trong luồng.

Mỗi stream sẽ có một implementation wrapper trong đó tồn tại một số code bổ sung cần thiết để xử lý các giao thức đặc biệt hoặc thực hiện việc encode. PHP cung cấp một số wrapper dựng sẵn và chúng ta có thể dễ dang tạo và đăng ký những wrapper tùy biến cho riêng mình. Ngoài
ra chúng ta cũng có thể sửa đổi hoặc cải tiến “hành vi” của các wrappers sử dụng contexts và filters

Xem Tắt

Stream cơ bản

Một stream được tham chiếu dưới dạng <scheme>://<target>. Trong đó<scheme>là tên của wrapper và<target>` sẽ phụ thuộc vào cú pháp của wrapper.

Bạn Đang Xem: Hướng dẫn dùng streaming string trong PHP

Wrapper mặc định sẽ là file://, điều naỳ có nghĩa là mỗi khi chúng ta access đến filesystem, chúng ta đều phải dùng qua stream. Ví dụ với việc đọc file, ta có thể viết bằng hai cách là readfile('https://cdn.quatangtiny.com/path/to/somefile.txt') hoặc readfile('file:///path/to/somefile.txt'), 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 code là readfile('http://google.com/') thì khi đó chúng ta đang yêu cầu PHP sử dụng HTTP Stream wrapper thay vì File Stream wrapper.

Như mình đã nói bên trên, PHP cung cấp một số wrappers dựng sẵn, giao thức vào filters. Để tìm hiểu cụ thể hơn các wrappers có sẵn với môi trường của bạn, chúng ta có thể dùng các hàm sau:

stream_get_transports();

Hướng dẫn dùng streaming string trong PHP stream_get_wrappers(); stream_get_filters()

Trên đây là cách transports, wrappers và filters trên môi trường máy 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 stream cho Amazon S3, MS Excel, Google Storage, Dropbox hoặc thậm chí là cả Twitter.

php:// Wrapper

Bản thân PHP cũng tự có cho riêng mình một wrapper để có thể access vào I/O streams. Một số wrapper cơ bản như: php://stdin, php://stdout, and php://stderr được map đến với các tài nguyên I/O mặc định. PHP cũng có thêm php://input là một read-only stream có thể truy cập trực tiếp đến dữ liệu raw của POST request. Điều này khá là thuận tiện khi chúng ta đang làm việc với các remote service mà payload data được đặt tại body của một POST request.

Cùng
thử làm một kiểm tra nhỏ sử dụng curl nhé

Xem Thêm : Đắt tiền tiếng Nhật là gì

curl -d "Hello" -d "a=b&c=d" http://localhost/dev/streams/php_input.php

Kết quả của đoạn code printr($POST) trả về sẽ là

Array
(
    [a] => b
    [c] => d
)

Để ý rằng chúng ta không thể lấy được gói dữ liệu đầu tiên từ $_POST nhưng nếu thay vào đó chúng ta dùng eadfile('php://input') thì lại có thể đưa ra kết quả đầy đủ: Hello&a=b&c=d

PHP 5 .1 giới thiệu thêm các wrapper: php://memory và php://temp được sử dụng để đọc và ghi các dữ liệu tạm thời. Bản thân tên của các wrapper này cũng cho thấy rằng dữ liệu được lưu trữ tương ứng ở memory hoặc ở
trong một bộ file tạm được quản lý bởi system. Ngoài ra còn có thêm php://filter, một meta-wrapper được thiết kế để có thể áp dụng các filters trong việc mở một stream với các hàm như là readfile() hoặc file_get_contents() hoặc stream_get_contents().

<?php
// Write encoded data
file_put_contents("php://filter/write=string.rot13/resource=file:///path/to/somefile.txt", "Hello World");

// Read data and encode/decode
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.google.com");

Trong ví dụ đầu tiên chúng ta đã dùng thêm một filter để encode dữ liệu ghi vào ổ đĩa. Ở ví dụ tiếp theo chúng ta có các filters được áp dụng cho việc đọc nội dung của một remote url. Hiệu quả của filter có thể từ rất đơn giản đến trở nên vô cùng mạnh mẽ.

Stream Contexts

Một Context là một stream đặc biệt với một bộ parameters hoặc options mà có thể sử dụng để ay thay đổi, tối ưu hành vi của một wrapper. Một use case phổ biên của context đó là dùng để thay đổi HTTP wrapper. Điều này giúp chúng ta tránh khỏi sử dụng cURL cho các tác vụ network đơn giản

<?php
$opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=> "Auth: SecretAuthTokenrn" .
        "Content-type: application/x-www-form-urlencodedrn" .
              "Content-length: " . strlen("Hello World"),
    'content' => 'Hello World'
  )
);
$default = stream_context_get_default($opts);
readfile('http://localhost/dev/streams/php_input.php');

Đầu tiên chúng ta sẽ định nghĩa mảng options của mình với định dạng $array[‘wrapper’][‘option_name’]. (mỗi một wrapper sẽ cho một tập hợp các option khác
nhau). Sau đó chúng ta có thể gọi stream_context_get_default() để trả về context mặc định và accept mảng options để thay thế cho các giá trị mặc định. Hàm readfile sau đó được dùng để lấy dữ liệu về

Trong ví dụ này, content được trả về thông qua body của request, do đó remote script sử dụng php://input có thể đọc nó, chúng ta có thể access vào headers sử dụng hàm apache_request_headers() và thêm:

Array
(
    [Host] => localhost
    [Auth] => SecretAuthToken
    [Content-type] => application/x-www-form-urlencoded
    [Content-length] => 11
)

Khi đó chúng ta đã thay đổi context mặc định. Trong trường hợp bạn muốn modify context nhưng không
làm ảnh hưởng đến context mặc định thì bạn có thể tạo ra một context mới dựa trên context mặc định mà sử dụng chúng song song với nhau.

<?php
$alternative = stream_context_create($other_opts);
readfile('http://localhost/dev/streams/php_input.php', false, $alternative);

Kết luận

Qua những mô tả bên trên, có thể bạn đã thấy sức mạnh của PHP Stream, 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 Streams share nhau một phần hoặc tất các các hàm liên quan đến filesystem, vậy nên cách tốt
nhất là hãy tìm hiểu thật kỹ về filesystem và cố gắng thử implement một custom wrapper để làm việc với filesystem nhé.

Xem Thêm : 5 cách đăng xuất tài khoản Tango để đăng nhập lại trên điện thoại 3

Tham khảo:

http://php.net/manual/en/features.commandline.io-streams.php

https://www.sitepoint.com/ understanding-streams-in-php/

http://php.net/manual/en/book.stream.php

http://php.net/manual/en/wrappers.php.php

http://php.net/manual/en/function.stream-context-create.php

Nguồn: https://quatangtiny.com
Danh mục: Blog

Liên Quan:

Cấp huyện tiếng Anh là gìCấp huyện tiếng Anh là gì Cách qua môn triết học mác – lêninCách qua môn triết học mác – lênin Tác giả cuốn văn học sử phổ thông bằng chữ quốc ngữTác giả cuốn văn học sử phổ thông bằng chữ quốc ngữ Kế hoạch dạy học môn Thể dục 9 năm 2022 – 2023Kế hoạch dạy học môn Thể dục 9 năm 2022 – 2023
Tags: Hướng dẫn dùng streaming string trong PHP
ADVERTISEMENT
Previous Post

Văn mẫu lớp 9: Nghị luận xã hội về hiện tượng thần tượng của giới trẻ

Next Post

Tóm tắt văn bản Vừa nhắm mắt vừa mở cửa sổ (5 mẫu)

Related Posts

Trước Chiến tranh the giới thứ nhất, ở Việt Nam có những giai cấp nào
Blog

Trước Chiến tranh the giới thứ nhất, ở Việt Nam có những giai cấp nào

5 Tháng Sáu, 2023
Một vật nhỏ khối lượng 2kg đang đứng yên
Blog

Một vật nhỏ khối lượng 2kg đang đứng yên

5 Tháng Sáu, 2023
Tranh treo tường giá bao nhiêu
Blog

Tranh treo tường giá bao nhiêu

5 Tháng Sáu, 2023
Hướng dẫn vẽ hình chiếu thứ 3
Blog

Hướng dẫn vẽ hình chiếu thứ 3

5 Tháng Sáu, 2023
Uống rota bị tiêu chảy bảo lâu
Blog

Uống rota bị tiêu chảy bảo lâu

5 Tháng Sáu, 2023
Top 8 soạn bài chú đi tuần hay nhất
Blog

Top 8 soạn bài chú đi tuần hay nhất

5 Tháng Sáu, 2023
Next Post
Tóm tắt văn bản Vừa nhắm mắt vừa mở cửa sổ (5 mẫu)

Tóm tắt văn bản Vừa nhắm mắt vừa mở cửa sổ (5 mẫu)

Bài Viết Mới

Trước Chiến tranh the giới thứ nhất, ở Việt Nam có những giai cấp nào
Blog

Trước Chiến tranh the giới thứ nhất, ở Việt Nam có những giai cấp nào

by Tiny Edu
5 Tháng Sáu, 2023
0

Trước Chiến tranh the giới thứ nhất, ở Việt Nam có những giai cấp nào

Read more
Một vật nhỏ khối lượng 2kg đang đứng yên

Một vật nhỏ khối lượng 2kg đang đứng yên

5 Tháng Sáu, 2023
Tranh treo tường giá bao nhiêu

Tranh treo tường giá bao nhiêu

5 Tháng Sáu, 2023
Hướng dẫn vẽ hình chiếu thứ 3

Hướng dẫn vẽ hình chiếu thứ 3

5 Tháng Sáu, 2023
Uống rota bị tiêu chảy bảo lâu

Uống rota bị tiêu chảy bảo lâu

5 Tháng Sáu, 2023
6 thuyet minh ve mot do dung hoc tap hay nhất, bạn nên biết

6 thuyet minh ve mot do dung hoc tap hay nhất, bạn nên biết

5 Tháng Sáu, 2023
Top 8 soạn bài chú đi tuần hay nhất

Top 8 soạn bài chú đi tuần hay nhất

5 Tháng Sáu, 2023
6 phân tích khổ thơ đầu đây thôn vĩ dạ hot nhất

6 phân tích khổ thơ đầu đây thôn vĩ dạ hot nhất

5 Tháng Sáu, 2023
4 chăn mền bị tích điện hot nhất hiện nay

4 chăn mền bị tích điện hot nhất hiện nay

5 Tháng Sáu, 2023
8 chị em cây khế hot nhất, đừng bỏ lỡ

8 chị em cây khế hot nhất, đừng bỏ lỡ

5 Tháng Sáu, 2023

Phản hồi gần đây

  • Tả cây cam mà em yêu thích (Dàn ý + 7 mẫu) - Tài Liệu Miễn Phí trong Tả một loại cây ăn quả mà em thích (Dàn ý + 70 Mẫu)
  • Mẫu vở luyện viết chữ đẹp - Tài Liệu Miễn Phí trong Mẫu giấy 4 ô ly
  • Bộ đề thi thử vào lớp 10 môn tiếng Anh năm 2018 - 2019 - Tài Liệu Miễn Phí trong Bộ đề thi thử vào lớp 10 môn Toán năm 2018 – 2019
  • Đề thi thử THPT Quốc gia năm 2017 môn Địa lý trường THPT Đoàn Thượng, Hải Dương (Lần 1) - Tài Liệu Miễn Phí trong Đề thi thử THPT Quốc gia năm 2017 môn Địa lý trường THPT Lý Thái Tổ, Bắc Ninh (Lần 1)
  • Đoạn văn tiếng Anh về môn thể thao yêu thích (8 mẫu) - Tài Liệu Miễn Phí trong Đoạn văn tiếng Anh về ngày Tết
ADVERTISEMENT
  • Trang chủ
  • Tin Tức
  • Liên hệ
HOME - TRANG CHU

© 2021 Copyright - Quà Tặng Tiny

No Result
View All Result
  • Giáo Án
  • Học Tập
    • Lớp 1
    • Lớp 2
    • Lớp 3
    • Lớp 4
    • Lớp 5
    • Lớp 6
    • Lớp 7
    • Lớp 8
    • Lớp 9
    • Lớp 10
    • Lớp 11
    • Lớp 12
  • Sách Tham Khảo
    • Sách Tham Khảo Lớp 1
    • Sách Tham Khảo Lớp 2
    • Sách Tham Khảo Lớp 3
    • Sách Tham Khảo Lớp 4
    • Sách Tham Khảo Lớp 5
    • Sách Tham Khảo Lớp 6
    • Sách Tham Khảo Lớp 7
    • Sách Tham Khảo Lớp 8
    • Sách Tham Khảo Lớp 9
    • Sách Tham Khảo Lớp 10
    • Sách Tham Khảo Lớp 11
    • Sách Tham Khảo Lớp 12
  • Ôn Thi
    • Thi THPT Quốc Gia
    • Địa Lý
    • Giáo Dục Công Dân
    • Hóa Học
    • Lịch Sử
    • Ngoại Ngữ
    • Ngữ Văn
    • Sinh Học
    • Vật Lý
    • Toán Học
  • Sách Kinh Tế
  • Sách Ngoại Ngữ
    • Tiếng Nhật
    • Tiếng Pháp
    • Tiếng Trung
  • Biểu mẫu
    • Giáo dục – Đào tạo
  • Sách Văn Học
  • Sách Y Học
  • Tài Liệu
    • Thủ tục hành chính
    • Việc làm – Nhân sự
    • Y học
    • Bộ đội – Quốc phòng – Thương binh
    • Doanh nghiệp
    • Giáo dục – Đào tạo
    • Giao thông vận tải
    • Hôn nhân – Gia đình
    • Quyền Dân sự
    • Tin Tức
  • Tâm Lý & Kỹ Năng

© 2021 Copyright - Quà Tặng Tiny