ฟังก์ชัน vfprintf

ฟังก์ชัน vfprintf เขียนสตริงที่จัดรูปแบบตามสเปซิฟายเออร์ลงในไฟล์สตรีม พารามิเตอร์แรกรับทรัพยากรไฟล์ พารามิเตอร์ที่สองรับสตริงรูปแบบ และพารามิเตอร์ที่สามรับอาร์เรย์ของอาร์กิวเมนต์สำหรับการแทนที่ ในสตริงรูปแบบจะใช้สัญลักษณ์พิเศษ (ฟอร์แมตสเปซิฟายเออร์) ซึ่งเริ่มต้นด้วยเครื่องหมาย % และควบคุมการจัดรูปแบบของการแสดงผล

ไวยากรณ์

phpvfprintf(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<?php
  $file = fopen('output.txt', 'w');
  $values = [10, 20.5, 'test'];
  vfprintf($file, "Number: %d, Float: %.2f, String: %s", $values);
  fclose($file);
?>

เนื้อหาของไฟล์ output.txt:

php'Number: 10, Float: 20.50, String: test'

ตัวอย่าง

การใช้สเปซิฟายเออร์ที่แตกต่างกัน:

php<?php
  $res = fopen('php://output', 'w');
  $data = [15, 12.3456, 'ABCDE'];
  vfprintf($res, "Hex: %x, Scientific: %.2e, Padding: '%5s'", $data);
  fclose($res);
?>

ผลลัพธ์การแสดงผล:

php'Hex: f, Scientific: 1.23e+1, Padding: \' ABCDE\''

ดูเพิ่มเติม

  • ฟังก์ชัน fprintf,
    ซึ่งจัดรูปแบบสตริงและเขียนลงในสตรีม
  • ฟังก์ชัน sprintf,
    ซึ่งส่งคืนสตริงที่จัดรูปแบบแล้ว
  • ฟังก์ชัน vsprintf,
    ซึ่งทำงานเหมือน sprintf แต่รับอาร์เรย์ของอาร์กิวเมนต์