Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP php://


แนะนำตัว

php:// wrapper เปิดใช้งานการเข้าถึงสตรีม I/O ต่างๆ ซึ่งรวมถึงสตรีมอินพุต เอาต์พุต และข้อผิดพลาดมาตรฐาน ในหน่วยความจำ ดิสก์สำรอง และสตรีมที่กรองแล้ว สามารถเข้าถึงได้ด้วยโปรโตคอล php://

สตรีมมาตรฐาน

php://stdin , php://stdout และ php://stderr อนุญาตให้เข้าถึงโดยตรงไปยังอุปกรณ์สตรีมอินพุตมาตรฐาน สตรีมเอาต์พุตมาตรฐาน และสตรีมข้อผิดพลาดไปยังกระบวนการ PHP ตามลำดับ ค่าคงที่ที่กำหนดไว้ล่วงหน้า STDIN , STDOUT และ STDERR ตามลำดับเป็นตัวแทนของลำธารเหล่านี้

php://input

php://input อนุญาตให้เข้าถึงข้อมูลดิบที่มีอยู่ในเนื้อหาคำขอ HTTP แบบอ่านอย่างเดียว โปรดทราบว่ามีข้อมูลเดียวกันใน $HTTP_POST_RAW-DATA ตัวแปร (ซึ่งตอนนี้เลิกใช้แล้ว) อย่างไรก็ตาม php://input ไม่พร้อมใช้งานสำหรับแอตทริบิวต์ enctype ที่ตั้งค่าเป็น multipart/form-data

php://output

Wrapper นี้แสดงถึงการสตรีมแบบเขียนอย่างเดียว ซึ่งช่วยให้มีกลไกบัฟเฟอร์ คล้ายกับพิมพ์ และ ก้อง แถลงการณ์

php://fd

file descriptor สามารถเข้าถึงได้ผ่าน wrapper นี้ สตรีมมาตรฐาน STDIN, STDOUT และ STDERR ถูกกำหนดให้ file descriptor 1,2 และ 3 สตรีมอื่น ๆ ทั้งหมดถูกกำหนดให้เป็น file descriptor ที่เพิ่มขึ้น ดังนั้น php://fd/5 หมายถึง file descriptor 5

php://memory

นี่คือสตรีมการอ่าน/เขียนที่อนุญาตให้จัดเก็บข้อมูลในหน่วยความจำชั่วคราว php://temp กระดาษห่อหุ้มจะคล้ายกัน อย่างไรก็ตาม ในกรณีหลัง ข้อมูลจะถูกเก็บไว้ในไฟล์ชั่วคราวแทนที่จะเป็นหน่วยความจำ

php://filter

Wrapper นี้อนุญาตให้ใช้ตัวกรองกับสตรีมเมื่อเปิด ตัวกรองมีประโยชน์อย่างยิ่งกับฟังก์ชัน readfile(), file_get_contents() และ file()

ตัวอย่าง

ในตัวอย่างต่อไปนี้ อินพุตคอนโซลจะอ่านจาก php://stdin และแสดงผลด้วย 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 stream wrapper อนุญาตให้ดึงข้อมูลดิบจากคำขอ HTTP ในตัวอย่างต่อไปนี้ แบบฟอร์ม HTML จะโพสต์ข้อมูลไปยังสคริปต์ PHP ด้วยวิธี 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>

สคริปต์ PHP เพื่อดึงข้อมูล HTTP ดิบมีดังนี้ -

<?php
$json = file_get_contents("php://input");
$data = json_decode($json);
print_r($json);
?>