Giới thiệu
php:// wrapper cho phép truy cập vào các luồng I / O khác nhau. Điều này bao gồm các luồng đầu vào, đầu ra và lỗi tiêu chuẩn. Các luồng trong bộ nhớ, đĩa được sao lưu và lọc cũng được truy cập bằng giao thức php://.
Luồng tiêu chuẩn
php:// stdin , php:// stdout và php:// stderr cho phép truy cập trực tiếp vào thiết bị luồng đầu vào tiêu chuẩn, luồng đầu ra tiêu chuẩn và luồng lỗi tương ứng với một quy trình PHP. Hằng số xác định trước STDIN , STDOUT và STDERR tương ứng đại diện cho các luồng này.
php:// input
php:// input cho phép chỉ đọc đối với dữ liệu thô có trong phần thân yêu cầu HTTP. Lưu ý rằng dữ liệu tương tự có sẵn trong $ HTTP_POST_RAW-DATA biến (hiện không được dùng nữa). Tuy nhiên, php:// input không khả dụng cho thuộc tính enctype được đặt thành multiart / form-data
php:// output
Trình bao bọc này đại diện cho tream chỉ ghi, cho phép cơ chế đệm, tương tự như in và echo tuyên bố.
php:// fd
một bộ mô tả tệp có thể truy cập được thông qua trình bao bọc này. Các luồng tiêu chuẩn STDIN, STDOUT và STDERR được gán bộ mô tả tệp 1,2 và 3. Mọi luồng khác được gán bộ mô tả tệp tăng dần. Do đó php:// fd / 5 tham chiếu đến bộ mô tả tệp 5
php:// memory
Đây là một luồng đọc / ghi cho phép dữ liệu được lưu trữ tạm thời trong bộ nhớ. php:// temp wrapper cũng tương tự. Tuy nhiên, trong trường hợp sau, dữ liệu được lưu trữ trong một tệp tạm thời thay vì bộ nhớ.
php:// filter
Trình bao bọc này cho phép áp dụng bộ lọc vào một luồng khi nó được mở. Bộ lọc đặc biệt hữu ích với các hàm readfile (), file_get_contents () và file ().
Ví dụ
Trong ví dụ sau, đầu vào bảng điều khiển được đọc từ php:// stdin và đầu ra được hiển thị bằng 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 trình bao bọc luồng cho phép tìm nạp dữ liệu thô từ yêu cầu HTTP. Trong ví dụ sau, biểu mẫu HTML đăng dữ liệu lên một tập lệnh PHP với phương thức 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>
Tập lệnh PHP để truy xuất dữ liệu HTTP thô như sau -
<?php $json = file_get_contents("php://input"); $data = json_decode($json); print_r($json); ?>