Giới thiệu
Wrapper php:// cho phép truy cập các luồng I/O khác nhau: đầu vào chuẩn, đầu ra chuẩn, luồng lỗi. Luồng trong bộ nhớ, trên đĩa và lọc cũng truy cập bằng php://.
Luồng chuẩn
php://stdin, php://stdout, php://stderr cho phép truy cập trực tiếp thiết bị luồng đầu vào, luồng đầu ra, luồng lỗi của tiến trình PHP. Hằng số STDIN, STDOUT, STDERR đại diện cho các luồng này.
php://input
php://input cho phép đọc dữ liệu thô trong body yêu cầu HTTP. Dữ liệu này cũng có trong biến $HTTP_POST_RAW_DATA (đã lỗi thời). Tuy nhiên php://input không dùng được khi enctype là multipart/form-data.
php://output
Wrapper chỉ ghi, cho phép cơ chế bộ đệm, tương tự print và echo.
php://fd
File descriptor truy cập qua wrapper này. STDIN, STDOUT, STDERR có descriptor 0,1,2. Các luồng khác tăng dần. Do đó php://fd/3 trỏ đến descriptor 3.
php://memory
Luồng đọc/ghi lưu tạm dữ liệu trong bộ nhớ. php://temp tương tự nhưng lưu vào file tạm thay vì bộ nhớ.
php://filter
Wrapper cho phép áp dụng bộ lọc khi mở luồng. Bộ lọc hữu ích với readfile(), file_get_contents(), file().
Ví dụ
Đọc từ php://stdin, ghi ra php://stdout:
<?php $file = fopen("php://stdin", "r"); $x = fread($file, 10); echo $x; $out = fopen("php://stdout", "w"); fwrite($out, $x); fclose($file); ?>php://input lấy dữ liệu HTTP thô. Ví dụ form HTML POST:
<html> <body> <form action="testscript.php" method="POST"> <input type="text" name="name"> <input type="text" name="age"> <input type="submit" value="submit"> </form> </body> </html>
Script PHP lấy dữ liệu:
<?php $json = file_get_contents("php://input"); $data = json_decode($json); print_r($json); ?>