ฟังก์ชัน fprintf() ของ PHP

ตัวอย่าง

เขียนข้อความลงในไฟล์ข้อความชื่อ "test.txt":

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo fprintf($file,"There are 쥕lion bicycles in %s.",$number,$str);
?>

ออกที่เป็นผลของรหัสความ:

40

ข้อความดังนี้จะถูกเขียนลงในไฟล์ "test.txt":

There are 9 million bicycles in Beijing.

คำหมายและวิธีใช้

ฟังก์ชัน fprintf() จะเขียนข้อความที่ถูกจัดรูปแบบไปยังสายออกที่กำหนด (ตัวอย่าง: ไฟล์หรือฐานข้อมูล)

arg1arg2arg++ ตัวแปรจะถูกใส่ลงในสายข้อความหลักที่ตัวอักษร % ที่ทำงานแบบทดลองต่อไป arg1, ใส่ arg2, ตามไปด้วย

หมายเหตุ:หากมีเครื่องหมาย % มากกว่า arg หากมีตัวแปร, คุณจำเป็นต้องใช้ตัวยังที่ % หลังจากเครื่องหมาย % โดยมีตัวเลขและ "\$" รวมกัน ดูตัวอย่าง 2

ฟังก์ชันที่เกี่ยวข้อง:

รูปแบบ

fprintf(stream,format,arg1,arg2,arg++)
ตัวแปร คำอธิบาย
stream จำเป็น. กำหนดที่จะเขียน/ออกออกมาของข้อความ
format

จำเป็น. กำหนดข้อความและวิธีการจัดรูปแบบตัวแปรที่อยู่ด้วย

ค่าฟอร์แมตที่เป็นไปได้:

  • %% - กลับมาเป็นตัวอักษร %
  • %b - ตัวเลขสองตัวอักษร
  • %c - อักษรที่เท่ากับตัวอักษร ASCII
  • %d - ตัวเลขเต็มที่มีสัญญาณเสนอน (เลขลบ, 0, เลขบวก)
  • %e - ใช้การนับเลขวิทยาศาสตร์ด้วยตัวเล็ก (ตัวอย่าง: 1.2e+2)
  • %E - ใช้การนับเลขวิทยาศาสตร์ด้วยตัวใหญ่ (ตัวอย่าง: 1.2E+2)
  • 鉮ัวเลขเต็มที่ไม่มีสัญญาณเสนอน (มากกว่าหรือเท่า 0)
  • %f - ตัวเลขของจำนวนที่ใช้การตั้งค่าท้องถิ่น
  • %F - ตัวเลขของจำนวนที่ไม่ใช้การตั้งค่าท้องถิ่น
  • %g - %e และ %f ที่แบบย่อ
  • %G - %E และ %f ที่แบบย่อ
  • %o - ตัวเลขเต็มหลายตำแหน่ง
  • %s - ข้อความ
  • %x - ตัวเลขสิบสองตัวอักษร (ตัวเล็ก)
  • %X - ตัวเลขสิบสองตัวอักษร (ตัวใหญ่)

ค่าฟอร์แมตเพิ่มเติม. จำเป็นต้องจัดวางใน % และตัวอักษรระหว่างเครื่องหมาย % และตัวอักษร (ตัวอย่าง: %.2f):

  • + (ใส่ + หรือ - ก่อนตัวเลขเพื่อกำหนดเศษของตัวเลข)
    โดยเห็นชัดแล้ว มีการทำเครื่องหมายเศษเฉพาะตัวเลขที่มีสัญลักษณ์เท่านั้น ไม่มีการทำเครื่องหมายเศษตัวเลขที่มีสัญลักษณ์เท่านั้น
  • ' (กำหนดใช้อะไรเป็นกรอง ต้นแบบคือช่องว่าง. มันจะต้องถูกใช้พร้อมกับตัวชนะกว้าง)
    ตัวอย่าง: '%x20s' (ใช้ 'x' ในการกรอง)
  • - (ปรับตัวเลขที่มีค่ามากที่สุดที่มีค่าตัวเลขที่เล็กที่สุด)
  • .[0-9] (กำหนดความกว้างของตัวเลขหรือค่าที่มีค่ามากที่สุด)
  • .[0-9] (กำหนดจำนวนตำแหน่งเศษหรือความยาวของข้อความสูงสุด)

หมายเหตุ:ถ้าใช้รูปแบบเกินค่าที่กำหนด ต้องใช้ตามลำดับที่กำหนดข้างต้น

arg1 จำเป็น. กำหนดให้ใส่ format ตัวเลขที่มี % สัญลักษณ์ที่หนึ่งในข้อความ
arg2 เลือกตั้ง. กำหนดให้ใส่ format ตัวเลขที่มี % สัญลักษณ์ที่สองในข้อความ
arg++ เลือกตั้ง. กำหนดให้ใส่ format ตัวเลขที่มี % สัญลักษณ์ที่สาม,สี่และอื่นๆ ในข้อความ

รายละเอียดเทคนิค

ค่าที่ส่งคืน: ส่งคืนความยาวของข้อความที่เขียนเข้าไป
PHP รุ่น: 5+

ตัวอย่างเพิ่มเติม

ตัวอย่าง 1

เขียนข้อความเข้าไปในไฟล์:

<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"%%f",$number);
?>

ข้อความด้านล่างจะถูกเขียนเข้าไปในไฟล์ "test.txt":

123.000000

ตัวอย่าง 2

ใช้ตัวยื่นที่มีตำแหน่ง:

<?php
$number = 123;
$file = fopen("test.txt","w");
fprintf($file,"มีเศษสองตำแหน่ง:%1$.2f
\nไม่มีเศษ:%1$u",$number);
?>

ข้อความด้านล่างจะถูกเขียนเข้าไปในไฟล์ "test.txt":

มีเศษสองตำแหน่ง: 123.00
ไม่มีเศษ: 123

ตัวอย่าง 3

ใช้ printf() ในการแสดงรูปแบบทั้งหมดที่เป็นไปได้:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // จากข้อความอักษร ASCII 50 คือ 2
// หมายเหตุ: รูปแบบ "%%" ส่งคืนเซ็นต์เซ็นท์
printf("%%b = %%b <br>",$num1); // จากข้อความเลขฐานสอง
printf("%%c = %%c <br>",$char); // จากข้อความอักษร ASCII
printf("%%d = %%d <br>",$num1); // จากข้อความเลขฐานสิบทศน์ (มีสัญลักษณ์)
printf("%%d = %%d <br>",$num2); // จากข้อความเลขฐานสิบทศน์ (มีสัญลักษณ์)
printf("%%e = %%e <br>",$num1); // จากข้อความคณิตศาสตร์ (เล็ก)
printf("%%E = %%E <br>",$num1); // จากข้อความคณิตศาสตร์ (ใหญ่)
printf("%鑾u <br>", $num1); // ตัวเลขเชิงจำนวนที่ไม่มีสัญญาณ (บวก)
printf("%鑾u <br>", $num2); // ตัวเลขเชิงจำนวนที่ไม่มีสัญญาณ (ลบ)
printf("%%f = %f <br>", $num1); // ตัวเลขเชิงจำนวน (มีความหมายตามการตั้งค่าท้องถิ่น)
printf("%%F = %F <br>", $num1); // ตัวเลขเชิงจำนวน (ไม่มีความหมายตามการตั้งค่าท้องถิ่น)
printf("%%g = %g <br>", $num1); // ย่อลงของ %e และ %f
printf("%%G = %G <br>", $num1); // ย่อลงของ %E และ %f
printf("%%o = %o <br>", $num1); // ตัวเลขแปดสิบ
printf("%%s = %s <br>", $num1); // ข้อความ
printf("%%x = %x <br>", $num1); // ตัวเลขสิบหก (เล็ก)
printf("%%X = %X <br>", $num1); // ตัวเลขสิบหก (ใหญ่)
printf("%%+d = %+d <br>", $num1); // ช่วงกำหนดสัญญาณ (บวก)
printf("%%+d = %+d <br>", $num2); // ช่วงกำหนดสัญญาณ (ลบ)
?>

ตัวอย่างการทำงาน