ฟังก์ชัน vfprintf
ฟังก์ชัน vfprintf เขียนสตริงที่จัดรูปแบบตามสเปซิฟายเออร์ลงในไฟล์สตรีม พารามิเตอร์แรกรับทรัพยากรไฟล์ พารามิเตอร์ที่สองรับสตริงรูปแบบ และพารามิเตอร์ที่สามรับอาร์เรย์ของอาร์กิวเมนต์สำหรับการแทนที่ ในสตริงรูปแบบจะใช้สัญลักษณ์พิเศษ (ฟอร์แมตสเปซิฟายเออร์) ซึ่งเริ่มต้นด้วยเครื่องหมาย % และควบคุมการจัดรูปแบบของการแสดงผล
ไวยากรณ์
vfprintf(resource $handle, string $format, array $args): int
ฟอร์แมตสเปซิฟายเออร์
| สเปซิฟายเออร์ | คำอธิบาย |
|---|---|
%s |
สตริง |
%d |
จำนวนเต็มพร้อมเครื่องหมาย (ทศนิยม) |
%u |
จำนวนเต็มไม่มีเครื่องหมาย (ทศนิยม) |
%f |
เลขจุดทศนิยม (ขึ้นกับโลเคล) |
%F |
เลขจุดทศนิยม (ไม่ขึ้นกับโลเคล) |
%c |
ตัวอักษรตามรหัส ASCII |
%x |
จำนวนเต็มในระบบเลขฐานสิบหก (ตัวพิมพ์เล็ก) |
%X |
จำนวนเต็มในระบบเลขฐานสิบหก (ตัวพิมพ์ใหญ่) |
%o |
จำนวนเต็มในระบบเลขฐานแปด |
%b |
จำนวนเต็มในระบบเลขฐานสอง |
%e |
สัญกรณ์วิทยาศาสตร์ (ตัวพิมพ์เล็ก) |
%E |
สัญกรณ์วิทยาศาสตร์ (ตัวพิมพ์ใหญ่) |
%g |
รูปแบบสั้นของ %e หรือ %f |
%G |
รูปแบบสั้นของ %E หรือ %F |
%% |
เครื่องหมายเปอร์เซ็นต์ |
ตัวอย่าง
การเขียนสตริงที่จัดรูปแบบแล้วลงในไฟล์:
<?php
$file = fopen('output.txt', 'w');
$values = [10, 20.5, 'test'];
vfprintf($file, "Number: %d, Float: %.2f, String: %s", $values);
fclose($file);
?>
เนื้อหาของไฟล์ output.txt:
'Number: 10, Float: 20.50, String: test'
ตัวอย่าง
การใช้สเปซิฟายเออร์ที่แตกต่างกัน:
<?php
$res = fopen('php://output', 'w');
$data = [15, 12.3456, 'ABCDE'];
vfprintf($res, "Hex: %x, Scientific: %.2e, Padding: '%5s'", $data);
fclose($res);
?>
ผลลัพธ์การแสดงผล:
'Hex: f, Scientific: 1.23e+1, Padding: \' ABCDE\''