Computer >> Máy Tính >  >> Lập trình >> PHP

PHP php://

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 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 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 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);
?>