เขียนสตริงที่จัดรูปแบบลงในตัวแปร:
<?php$number = 9;$str = "Beijing";$txt = vsprintf("มีจักรยาน %u ล้านคันใน %s.",array($number,$str));echo $txt;?>ฟังก์ชัน vsprintf() เขียนสตริงที่จัดรูปแบบแล้วลงในตัวแปร
ต่างจาก sprintf() อาร์กิวเมนต์ใน vsprintf() อยู่ในอาร์เรย์ องค์ประกอบอาร์เรย์จะถูกแทรกลงในสตริงหลักที่เครื่องหมายเปอร์เซ็นต์ (%) ฟังก์ชั่นนี้ดำเนินการทีละขั้นตอน ที่เครื่องหมาย % แรก องค์ประกอบอาร์เรย์แรกจะถูกแทรก ที่เครื่องหมาย % ที่สอง องค์ประกอบอาร์เรย์ที่สองจะถูกแทรก และอื่นๆ
หมายเหตุ: หากมีสัญลักษณ์ % มากกว่าพารามิเตอร์ arg คุณต้องใช้ตัวยึดตำแหน่ง ตัวยึดตำแหน่งจะถูกแทรกหลังสัญลักษณ์ % และประกอบด้วยตัวเลขและ "$" ดูตัวอย่างที่ 2
เคล็ดลับ: ฟังก์ชั่นที่เกี่ยวข้อง: fprintf(), vfprintf(), printf(), sprintf() และ vprintf()
vsprintf( รูปแบบ,อาร์เรย์ )
พารามิเตอร์ | อธิบาย |
---|---|
รูปแบบ | ที่จำเป็น. ระบุสตริงและวิธีจัดรูปแบบตัวแปรภายในสตริง ค่ารูปแบบที่เป็นไปได้: %% - ส่งกลับเครื่องหมายเปอร์เซ็นต์ % %b - เลขฐานสอง %c - อักขระที่สอดคล้องกับค่า ASCII %d - เลขทศนิยมที่มีเครื่องหมาย (ลบ, 0, บวก) %e - ใช้สัญลักษณ์ทางวิทยาศาสตร์ตัวพิมพ์เล็ก (เช่น 1.2e+2) %E - ใช้สัญลักษณ์ทางวิทยาศาสตร์ตัวพิมพ์ใหญ่ (เช่น 1.2E+2) %u - เลขทศนิยมที่ไม่มีเครื่องหมาย (มากกว่าหรือเท่ากับ 0) %f - จำนวนจุดลอยตัว (การตั้งค่าท้องถิ่น) %F - จำนวนจุดลอยตัว (การตั้งค่าที่ไม่ใช่เนทิฟ) %g - เวอร์ชันที่สั้นกว่าของ %e และ %f %G - %E และ %f สั้นลง %o - เลขฐานแปด %s - สตริง %x - เลขฐานสิบหก (ตัวพิมพ์เล็ก) %X - เลขฐานสิบหก (ตัวพิมพ์ใหญ่) ค่ารูปแบบเพิ่มเติม ต้องอยู่ระหว่าง % และตัวอักษร (เช่น %.2f): + (เพิ่ม + หรือ - หน้าตัวเลขเพื่อกำหนดเครื่องหมายของตัวเลข โดยค่าเริ่มต้น ระบบจะทำเครื่องหมายเฉพาะตัวเลขลบเท่านั้น และจะไม่ทำเครื่องหมายตัวเลขบวก) ' (ระบุสิ่งที่จะใช้เป็นช่องว่างภายใน โดยค่าเริ่มต้นคือการเว้นวรรค โดยจะต้องใช้ร่วมกับตัวระบุความกว้าง ตัวอย่างเช่น: %'x20s (ใช้ "x" เป็นช่องว่างภายใน)) - (ค่าตัวแปรการปรับด้านซ้าย) [0-9] (ระบุความกว้างต่ำสุดของค่าตัวแปร) .[0-9] (ระบุจำนวนตำแหน่งทศนิยมหรือความยาวสตริงสูงสุด) หมายเหตุ: หากใช้ค่ารูปแบบข้างต้นหลายค่า จะต้องใช้ค่าเหล่านั้นตามลำดับด้านบนและไม่สามารถรบกวนได้ |
การอาละวาด | ที่จำเป็น. อาร์เรย์ที่มีพารามิเตอร์ที่จะแทรกลงในสตริงรูปแบบที่สัญลักษณ์ % |
ค่าส่งคืน: | ส่งกลับค่าอาร์เรย์เป็นสตริงที่จัดรูปแบบ |
---|---|
เวอร์ชัน PHP: | 4.1.0+ |
ใช้ค่ารูปแบบ %f:
<?php$num1 = 123;$num2 = 456;$txt = vsprintf("%f%f",array($num1,$num2));เสียงก้อง $txt;?>ใช้ตัวยึดตำแหน่ง:
<?php$number = 123;$txt = vsprintf("มีทศนิยม 2 ตำแหน่ง: %1$.2f<br>ไม่มีทศนิยม: %1$u",array($number));echo $txt;?>ใช้ sprintf() เพื่อแสดงค่ารูปแบบที่เป็นไปได้ทั้งหมด:
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // อักขระ ASCII 50 คือ 2// หมายเหตุ: ค่ารูปแบบ "%%" ส่งคืนเปอร์เซ็นต์ signecho sprintf("%%b = % b",$num1).."<br>"; // ไบนารี numberecho sprintf("%%c = %c",$char).."<br>"; // ASCII Characterecho sprintf("%%d = %d",$num1).."<br>"; // เซ็นชื่อเลขทศนิยมecho sprintf("%% d = %d",$num2).."<br>"; // เลขทศนิยมที่ลงนามแล้วecho sprintf("%%e = %e",$num1)"<br>"; // สัญลักษณ์ทางวิทยาศาสตร์ (ตัวพิมพ์เล็ก)echo sprintf("%%E = %E",$num1)"<br>"; // สัญลักษณ์ทางวิทยาศาสตร์ (ตัวพิมพ์ใหญ่)echo sprintf("%%u = %u",$num1)"< br>"; // เลขทศนิยมที่ไม่ได้ลงนาม (บวก)echo sprintf("%%u = %u",$num2).."<br>"; // เลขทศนิยมที่ไม่ได้ลงนาม (ลบ)echo sprintf("%%f = %f",$num1).."<br>"; // หมายเลขทศนิยม (ทราบการตั้งค่าท้องถิ่น)echo sprintf("%%F = %F",$num1)"< br>"; // หมายเลขทศนิยม (ไม่ใช่ค่า sett ในระบบ) echo sprintf("%%g = %g",$num1)"<br>"; // สั้นกว่าของ %e และ %fecho sprintf("%%G = %G",$num1).."<br>"; // สั้นกว่าของ %E และ %fecho sprintf("%%o = %o",$num1)"<br>" ; // Octal numberecho sprintf("%%s = %s",$num1)"<br>"; // Stringecho sprintf("%%x = %x",$num1)"<br>"; // เลขฐานสิบหก (ตัวพิมพ์ใหญ่)echo sprintf("%%+d = %+d", $num1).."<br>"; // ตัวระบุเครื่องหมาย (บวก)echo sprintf("%%+d = %+d",$num2)."<br>"; // ตัวระบุเครื่องหมาย (เชิงลบ)?>การสาธิตตัวระบุสตริง:
<?php$str1 = "Hello";$str2 = "สวัสดีชาวโลก!";echo vsprintf("[%s]",array($str1))."<br>";echo vsprintf("[%8s] ",array($str1))."<br>";echo vsprintf("[%-8s]",array($str1))"<br>";echo vsprintf("[%08s]",array($str1))"<br>"; echo vsprintf("[%'*8s]",array($str1))"<br>";echo vsprintf( "[%8.8s]",อาร์เรย์($str2))."<br>"; ?>