( PHP 4, PHP 5, PHP 7)
วิ่งเร็ว - ส่งกลับสตริงที่จัดรูปแบบ
รายการพารามิเตอร์
สตริงรูปแบบประกอบด้วยคำสั่งตั้งแต่ศูนย์ขึ้นไป: อักขระธรรมดา (ยกเว้น % ) ซึ่งจะถูกคัดลอกโดยตรงไปยังสตริงผลลัพธ์ และ ตัวอธิบายการเปลี่ยนแปลงซึ่งแต่ละรายการจะถูกแทนที่ด้วยพารามิเตอร์ตัวใดตัวหนึ่ง สิ่งนี้ใช้ได้กับทั้งสองอย่าง วิ่ง()และเพื่อ พิมพ์f().
ตัวระบุการแปลงแต่ละรายการประกอบด้วยเครื่องหมายเปอร์เซ็นต์ ( % ) ตามด้วยองค์ประกอบเพิ่มเติมอย่างน้อยหนึ่งรายการ (ตามลำดับที่แสดงไว้ที่นี่):
- ไม่จำเป็น อธิบายตัวละครระบุว่าจะใช้เครื่องหมาย (- หรือ +) กับตัวเลขอย่างไร ตามค่าเริ่มต้น ระบบจะใช้เฉพาะเครื่องหมายลบหากตัวเลขเป็นลบ ตัวระบุนี้ทำให้ตัวเลขบวกแสดงเครื่องหมายบวกด้วยและถูกเพิ่มใน PHP 4.3.0
- ไม่จำเป็น ตัวระบุช่องว่างภายในซึ่งระบุอักขระที่จะใช้เพื่อขยายผลลัพธ์ตามความยาวที่ต้องการ อาจเป็นพื้นที่หรือ 0 - ค่าเริ่มต้นคือช่องว่าง " สามารถระบุอักขระสำรองได้โดยใช้เครื่องหมายคำพูดเดี่ยว (
- ไม่จำเป็น - ดูตัวอย่างด้านล่างตัวอธิบายการจัดตำแหน่ง - ซึ่งระบุการจัดตำแหน่งซ้ายหรือขวา โดยค่าเริ่มต้นจะจัดชิดขวา
- ใช้สำหรับการจัดตำแหน่งด้านซ้าย หมายเลขเสริมตัวระบุความกว้าง
- ไม่จำเป็น ซึ่งระบุจำนวนอักขระขั้นต่ำที่ผลลัพธ์ของการแปลงนี้จะมีตัวอธิบายความแม่นยำ
ระบุเป็นจุด (".") ตามด้วยสตริงทศนิยมซึ่งระบุจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม เมื่อใช้กับสตริง ตัวระบุนี้จะทำหน้าที่เป็นจุดตัดที่กำหนดจำนวนอักขระสูงสุด คุณยังสามารถระบุสัญลักษณ์ที่ใช้เติมตัวเลขระหว่างจุดและตัวเลขได้ตัวระบุประเภท
- % ซึ่งระบุวิธีจัดการกับประเภทข้อมูลของอาร์กิวเมนต์ ประเภทที่ถูกต้อง:
- - สัญลักษณ์เปอร์เซ็นต์ อาร์กิวเมนต์ไม่ได้ใช้ข
- - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขฐานสองค
- - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นอักขระที่มีรหัส ASCII ที่สอดคล้องกันง
- - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขทศนิยมที่ลงนาม- อาร์กิวเมนต์ถูกตีความว่าเป็นตัวเลขในรูปแบบทางวิทยาศาสตร์ (เช่น 1.2e+2)
- ตัวระบุความแม่นยำระบุจำนวนตำแหน่งทศนิยมตั้งแต่ PHP 5.2.1 ในเวอร์ชันก่อนหน้านี้ ระบุจำนวนตัวเลขนัยสำคัญ (เครื่องหมายน้อยกว่าหนึ่งเครื่องหมาย)อี - คล้ายกัน%อี
- แต่ใช้อักษรตัวพิมพ์ใหญ่ (เช่น 1.2E+2)ฉ
- - อาร์กิวเมนต์จะถือเป็นตัวเลขทศนิยมและส่งออกขึ้นอยู่กับโลแคลด้วยเอฟ
- - อาร์กิวเมนต์จะถือเป็นตัวเลขทศนิยมและเป็นเอาต์พุตด้วย แต่ไม่ขึ้นอยู่กับโลแคล - คล้ายกันใช้งานได้ตั้งแต่ PHP 4.3.10 และ PHP 5.0.3 ก.
- และ%ฉ ชใช้งานได้ตั้งแต่ PHP 4.3.10 และ PHP 5.0.3 ก.
- - เลือกรายการที่สั้นที่สุดจาก%อี
- โอ- อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขฐานแปด
- ส- อาร์กิวเมนต์จะถือเป็นสตริง
- คุณ- อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขทศนิยมที่ไม่ได้ลงนาม
- x- อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขฐานสิบหก (ตัวพิมพ์เล็ก)
เอ็กซ์
ตัวแปรจะถูกแปลงเป็นประเภทที่เหมาะสมสำหรับตัวระบุ: | ประเภทการจัดการ |
---|---|
พิมพ์ | โอ |
ตัวระบุ | - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นอักขระที่มีรหัส ASCII ที่สอดคล้องกัน, ส, - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขฐานสอง, - เลือกรายการที่สั้นที่สุดจาก, คุณ, x, - สัญลักษณ์เปอร์เซ็นต์ อาร์กิวเมนต์ไม่ได้ใช้ |
เชือก | - อาร์กิวเมนต์จะถือเป็นตัวเลขทศนิยมและเป็นเอาต์พุตด้วย แต่ไม่ขึ้นอยู่กับโลแคล, และ, - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขทศนิยมที่ลงนาม, ตัวระบุความแม่นยำระบุจำนวนตำแหน่งทศนิยมตั้งแต่ PHP 5.2.1 ในเวอร์ชันก่อนหน้านี้ ระบุจำนวนตัวเลขนัยสำคัญ (เครื่องหมายน้อยกว่าหนึ่งเครื่องหมาย), แต่ใช้อักษรตัวพิมพ์ใหญ่ (เช่น 1.2E+2), - อาร์กิวเมนต์จะถือเป็นตัวเลขทศนิยมและส่งออกขึ้นอยู่กับโลแคลด้วย |
จำนวนเต็ม
สองเท่า
ความสนใจ
การพยายามใช้การรวมกันของตัวระบุสตริงและความกว้างกับการเข้ารหัสที่ต้องใช้มากกว่าหนึ่งไบต์ต่ออักขระอาจให้ผลลัพธ์ที่ไม่คาดคิด
สตริงรูปแบบรองรับการกำหนดหมายเลขและการเรียงลำดับพารามิเตอร์ใหม่ ตัวอย่างเช่น:
ตัวอย่าง #1 การเปลี่ยนลำดับของพารามิเตอร์
$num = 5 ; $location = "ต้นไม้" ;;
?>
$รูปแบบ=
"มีลิง %d ตัวนั่งอยู่บน %s"
รหัสนี้จะส่งออก "ลิง 5 ตัวนั่งอยู่บนต้นไม้" ทีนี้ลองจินตนาการว่าสตริงรูปแบบนั้นอยู่ในไฟล์แยกต่างหาก ซึ่งจากนั้นจะถูกแปลเป็นภาษาอื่น และเราเขียนมันใหม่ดังนี้: ตัวอย่าง #2 การเปลี่ยนลำดับของพารามิเตอร์;
$รูปแบบ=
?>
"มีลิง %d ตัวนั่งอยู่บน %s"
echo sprintf ($รูปแบบ, $num, $location);
รหัสนี้จะส่งออก "ลิง 5 ตัวนั่งอยู่บนต้นไม้" ทีนี้ลองจินตนาการว่าสตริงรูปแบบนั้นอยู่ในไฟล์แยกต่างหาก ซึ่งจากนั้นจะถูกแปลเป็นภาษาอื่น และเราเขียนมันใหม่ดังนี้: เกิดปัญหา: ลำดับของตัวระบุการแปลงไม่ตรงกับลำดับของอาร์กิวเมนต์ เราไม่ต้องการเปลี่ยนโค้ด และเราต้องระบุว่าอาร์กิวเมนต์ใดที่สอดคล้องกับตัวระบุการแปลงใด;
$รูปแบบ=
?>
ตัวอย่าง #3 การเปลี่ยนลำดับของพารามิเตอร์
"มีลิง %1$d ตัวนั่งอยู่บน %2$s"
รหัสนี้จะส่งออก "ลิง 5 ตัวนั่งอยู่บนต้นไม้" ทีนี้ลองจินตนาการว่าสตริงรูปแบบนั้นอยู่ในไฟล์แยกต่างหาก ซึ่งจากนั้นจะถูกแปลเป็นภาษาอื่น และเราเขียนมันใหม่ดังนี้: การกำหนดหมายเลขอาร์กิวเมนต์มีประโยชน์อีกอย่างหนึ่ง: ช่วยให้คุณสามารถพิมพ์อาร์กิวเมนต์เดียวกันได้หลายครั้งโดยไม่ต้องส่งพารามิเตอร์เพิ่มเติมไปยังฟังก์ชัน
ตัวอย่าง #4 การเปลี่ยนลำดับของพารามิเตอร์;
$รูปแบบ=
?>
"มีลิง %1$d ตัวนั่งอยู่บน %2$s เป็นเรื่องดีที่มี %2$s นั่งบนลิง %1$d ตัว" เมื่อเปลี่ยนลำดับของพารามิเตอร์ตัวบ่งชี้ตำแหน่ง % ) ก่อนคำอธิบายอื่นๆ ทั้งหมด ดังแสดงในตัวอย่างด้านล่าง
ตัวอย่างที่ 5 การระบุอักขระเสริม
เสียงสะท้อนวิ่ง ("%".9d\n" , 123 );
เสียงสะท้อนวิ่ง ("%".09d\n" , 123 );
?>
123 000000123
ตัวอย่างที่ 6 การใช้ตัวระบุตำแหน่งและร่วมกับคำอธิบายอื่นๆ
รหัสนี้จะส่งออก "ลิง 5 ตัวนั่งอยู่บนต้นไม้" ทีนี้ลองจินตนาการว่าสตริงรูปแบบนั้นอยู่ในไฟล์แยกต่างหาก ซึ่งจากนั้นจะถูกแปลเป็นภาษาอื่น และเราเขียนมันใหม่ดังนี้: "มีลิง %1$04d ตัวนั่งอยู่บน %2$s";
$รูปแบบ=
?>
ผลลัพธ์ของการรันตัวอย่างนี้:
0005 ลิงนั่งอยู่บนต้นไม้
ความคิดเห็น:
มีความพยายามที่จะใช้ตัวระบุตำแหน่งที่มากกว่า PHP_INT_MAXจะทำให้ฟังก์ชันสร้างคำเตือน วิ่ง() .
จำนวนเต็ม
ที่ - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขฐานสองตัวระบุประเภทจะละเว้นช่องว่างภายในและความกว้าง
ส่งกลับค่า
ส่งคืนสตริงที่จัดรูปแบบตามรูปแบบ
ตัวอย่าง
ตัวอย่าง #7 วิ่ง(): เติมด้วยศูนย์
$n = 43951789 ;
$u = - 43951789 ;
$ซี = 65 ; // ASCII 65 คือ "A"
// โปรดทราบว่า double %% จะถูกส่งออกเป็น single "%"
printf ("%%b = "%b"\n" , $n ); // การเป็นตัวแทนไบนารี
printf ("%%c = "%c"\n" , $c ); // พิมพ์อักขระ ASCII คล้ายกับฟังก์ชัน chr()
printf ("%%d = "%d"\n" , $n ); // จำนวนเต็มปกติ
printf ("%%e = "%e"\n" , $n ); // สัญกรณ์ทางวิทยาศาสตร์
printf ("%%u = "%u"\n" , $n ); // การแสดงจำนวนเต็มบวกที่ไม่ได้ลงนาม
printf ("%%u = "%u"\n" , $u ); // การแสดงจำนวนเต็มที่ไม่ได้ลงนามของจำนวนลบ
printf ("%%f = "%f"\n" , $n ); // การแทนจำนวนจุดลอยตัว
printf ("%%o = "%o"\n" , $n ); // การเป็นตัวแทนฐานแปด
printf ("%%s = "%s"\n" , $n ); // เส้น
printf ("%%x = "%x"\n" , $n ); // การแสดงเลขฐานสิบหก (ตัวพิมพ์เล็ก)
printf ("%%X = "%X"\n" , $n ); // การแสดงเลขฐานสิบหก (ตัวพิมพ์ใหญ่)
พิมพ์f ("%%+d = "%+d"\n" , $n ); // ลงนาม descriptor ด้วยจำนวนเต็มบวก
printf ("%%+d = "%+d"\n" , $u ); // ลงนาม descriptor ด้วยจำนวนเต็มลบ
?>
ผลลัพธ์ของการรันตัวอย่างนี้:
%b = "10100111101010011010101101" %c = "A" %d = "43951789" %e = "4.39518e+7" %u = "43951789" %u = "4251015507" %f = "43951789.000000" %o = "247523 255 " %s = "43951789" %x = "29ea6ad" %X = "29EA6AD" %+d = "+43951789" %+d = "-43951789"
ตัวอย่าง #8 พิมพ์f(): ตัวอธิบายสตริง
$s = "ลิง" ;
$t = "ลิงหลายตัว" ;
Printf("[%s]\n" , $s ); // เอาต์พุตบรรทัดปกติ
printf ("[%10s]\n" , $s ); // จัดชิดขวาด้วยช่องว่าง
printf ("[%-10s]\n" , $s ); // จัดชิดซ้ายด้วยช่องว่าง
printf ("[%010s]\n" , $s ); // การเติมศูนย์ยังใช้ได้กับสตริงด้วย
printf ("[%"#10s]\n" , $s ); // ใช้อักขระเสริม "#" ของคุณเอง
printf ("[%10.10s]\n" , $t ); // จัดชิดซ้ายโดยตัดแต่งอักขระ 10 ตัว
?>
พิมพ์ฉ("วิธีการจัดรูปแบบ", parameter1, parameter2, ...) -- แสดงผลบนหน้าจอ
$ผลลัพธ์= วิ่ง("..", .., .., ...) - สิ่งเดียวกัน มีเพียงบรรทัดเท่านั้นที่ไม่แสดงผล แต่วางไว้ใน $result
อ้างอิงจากการแปลคู่มือ ( ตัวอย่างด้านล่าง:-):
วิ่ง
sprintf -- ส่งคืนสตริงที่จัดรูปแบบแล้วคำอธิบาย
sprintf (รูปแบบสตริง, แบบผสม ...);ส่งกลับสตริงที่ประมวลผลตามสตริงรูปแบบ รูปแบบ .
สตริงรูปแบบที่มีคำสั่งเป็นศูนย์หรือมากกว่า: อักขระธรรมดา (ยกเว้น %) ที่ถูกคัดลอกไปยังผลลัพธ์โดยตรง และที่ถูกคัดลอกโดยตรงไปยังผลลัพธ์ และ คำอธิบายของการเปลี่ยนแปลงซึ่งแต่ละอย่างจะดำเนินการเฉพาะเจาะจง นอกจากนี้ยังใช้กับ วิ่ง()และเพื่อ พิมพ์f()
คำสั่งเปลี่ยนแปลงแต่ละคำสั่งประกอบด้วยองค์ประกอบต่อไปนี้ ตามลำดับ:
ระบุเป็นจุด (".") ตามด้วยสตริงทศนิยมซึ่งระบุจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม เมื่อใช้กับสตริง ตัวระบุนี้จะทำหน้าที่เป็นจุดตัดที่กำหนดจำนวนอักขระสูงสุด คุณยังสามารถระบุสัญลักษณ์ที่ใช้เติมตัวเลขระหว่างจุดและตัวเลขได้คำอธิบายนี้ไม่มีผลกับประเภทอื่นนอกจากสองเท่า (ฟังก์ชันที่มีประโยชน์อีกอย่างในการจัดรูปแบบตัวเลขคือ
number_format() ซึ่งบอกว่าควรปฏิบัติต่อประเภทข้อมูลของอาร์กิวเมนต์อย่างไร ประเภทที่เป็นไปได้: % คือสัญลักษณ์เปอร์เซ็นต์ ไม่จำเป็นต้องโต้แย้ง b - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและแสดงเป็นเลขฐานสอง c - อาร์กิวเมนต์ถือเป็นจำนวนเต็มและแสดงเป็นอักขระที่มีค่า ASCII d - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและแสดงเป็นเลขทศนิยม f - อาร์กิวเมนต์จะถือเป็นสองเท่าและแสดงเป็นตัวเลขทศนิยม o - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและแสดงเป็นเลขฐานแปด
เพิ่มเติม ตัวระบุช่องว่างภายในซึ่งบอกว่าจะใช้อักขระตัวใดเพื่อขยายผลลัพธ์ให้เป็นขนาดสตริงที่ถูกต้อง สิ่งเหล่านี้อาจเป็นช่องว่างหรือ 0 (อักขระศูนย์) โดยค่าเริ่มต้นจะเต็มไปด้วยช่องว่าง อักขระเสริมอื่นสามารถระบุได้ด้วยเครื่องหมายคำพูดเดี่ยว (") ดูตัวอย่างด้านล่าง
เพิ่มเติม - ดูตัวอย่างด้านล่างซึ่งบอกว่าผลลัพธ์ควรชิดซ้ายหรือขวา
เพิ่มเติม หมายเลขเสริมตามค่าเริ่มต้น การจัดตำแหน่งจะจัดชิดขวา - ตัวละครจะส่งผลให้จัดตำแหน่งไปทางซ้าย
เพิ่มเติม ซึ่งระบุจำนวนอักขระขั้นต่ำที่ผลลัพธ์ของการแปลงนี้จะมีซึ่งบอกว่าสามารถแทนที่อักขระนี้ได้กี่ตัว (ขั้นต่ำ) ซึ่งบอกจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม .)
ตัวอย่าง
s - อาร์กิวเมนต์ถูกตีความและแสดงเป็นสตริง x - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและแสดงเป็นเลขฐานสิบหก (โดยมีตัวอักษรเป็นตัวพิมพ์เล็ก) ตัวอย่างทุกสิ่งที่เขียนลงไป >>> ระหว่างวงเล็บดังกล่าว <<< คือผลลัพธ์ของฟังก์ชัน (เช่น ตัวอย่างเอาต์พุตบนหน้าจอ) $s="MyString"; -> บรรทัด %s $f=12345.6789; -> เศษส่วน %f $d=12345; -> จำนวนเต็ม %d ระบบที่ 10: 0123456789 16numbers %x ระบบที่ 16: 0123456789abcdef 16numbers %X ระบบที่ 16: 0123456789ABCDEF 8numbers %o ระบบที่ 8: 01234567 2numbers %b ระบบที่ 2: 01 เพิ่งพิมพ์ หมายเลข : printf("%d",$ ง); >>> 12345<<< просто выводим 16число: printf("%X",123456789); >>>75BCD15<<< просто выводим 2число: printf("%b",$d); >>> 11000000111001 <<< просто выводим дробное число: printf("%f",$f); >>> 12345.6789 <<< дополнение чисел нулями: printf("%010d",$d); >>> 0000012345 <<< округление до 3х знаков после запятой: printf("%.3f",$f); >>> 12345.679 <<< просто выводим число + посторонний текст: printf("посторонний%dтекст",$d); >>> คนนอก12345ข้อความ<<< вывод нескольких переменных - последовательное перечисление printf("%d-%f-%s",$d,$f,$s); >>> 12345-12345.678900-MyString<<< выравнивание (ширина 20 символов) по правому краю, пустоту заполняем "_": printf("%"_20s",MyString); >>> ____________MyString<<< выравнивание по левому краю, пустоту заполняем "x": printf("%-"x20s",MyString); >>> MyStringxxxxxxxxxxxx<<<ดูตัวอย่างอื่นๆ ที่นี่: |
พิมพ์สตริง ค่าตัวแปร หรือนิพจน์
ไวยากรณ์:
พิมพ์ (หาเรื่องสตริง)
ฟังก์ชัน print() จะพิมพ์อาร์กิวเมนต์หาเรื่อง ซึ่งอาจเป็นตัวแปรหรือนิพจน์ก็ได้
เทียบกับprintf()
ส่งกลับสตริงที่จัดรูปแบบ (PHP 4 >= 4.1.0, PHP 5)
คำอธิบาย:
สตริง vsprintf (รูปแบบสตริง, อาร์เรย์ args)
ฟังก์ชันนี้คล้ายกับ sprintf() แต่ใช้อาร์เรย์มากกว่าจำนวนอาร์กิวเมนต์ที่แปรผันได้
พิมพ์ค่าตั้งแต่หนึ่งค่าขึ้นไป
ไวยากรณ์:
เสียงสะท้อน (สตริง arg1, สตริง ... )
ฟังก์ชัน echo() แสดงค่าของพารามิเตอร์ที่ระบุไว้
echo() จริงๆ แล้วเป็นโครงสร้างภาษา ดังนั้นจึงไม่จำเป็นต้องใส่วงเล็บแม้ว่าจะใช้หลายอาร์กิวเมนต์ก็ตาม
echo "เส้นแบ่งที่อยู่ในโค้ดจะถูกบันทึกและใช้ในเอาต์พุต"
"เพื่อหลีกเลี่ยงการใช้งานนี้"
"ตัวดำเนินการต่อข้อมูล";
ส่งออกสตริงที่จัดรูปแบบแล้ว
ไวยากรณ์:
Int printf(รูปแบบสตริง [, ผสม args, ...]);
ทำสิ่งเดียวกันกับ sprintf() เฉพาะสตริงผลลัพธ์เท่านั้นที่จะไม่ส่งคืน แต่ส่งไปยังเบราว์เซอร์ของผู้ใช้
ดำเนินการจัดรูปแบบสตริงด้วยการทดแทนตัวแปร
ไวยากรณ์:
Sprintf($รูปแบบ [,args, ...])
ฟังก์ชันนี้ส่งคืนสตริงที่สร้างจากสตริงรูปแบบที่มีอักขระพิเศษบางตัวซึ่งจะถูกแทนที่ด้วยค่าของตัวแปรที่เกี่ยวข้องในรายการอาร์กิวเมนต์ในภายหลัง
สตริงรูปแบบ $format สามารถรวมคำสั่งการจัดรูปแบบที่นำหน้าด้วยอักขระ %
อักขระอื่นๆ ทั้งหมดจะถูกคัดลอกไปยังสตริงเอาต์พุตตามที่เป็นอยู่ ตัวระบุรูปแบบแต่ละตัว (นั่นคือ อักขระ % และคำสั่งต่อไปนี้) จะจับคู่พารามิเตอร์เดียวและมีเพียงพารามิเตอร์เดียวที่ระบุหลังพารามิเตอร์ $format หากคุณต้องการใส่ % ในข้อความเป็นสัญลักษณ์ปกติ คุณต้องเพิ่มเป็นสองเท่า:
Echo sprintf("เปอร์เซ็นต์คือ %d%%",$percentage);
ตัวระบุรูปแบบแต่ละรายการมีองค์ประกอบได้สูงสุดห้าองค์ประกอบ (ตามลำดับที่ปรากฏหลังอักขระ %):
ตัวระบุขนาดฟิลด์เสริมที่ระบุจำนวนอักขระที่จะถูกจัดสรรสำหรับค่าเอาต์พุต
เป็นอักขระตัวแทน (หากค่ามีขนาดเล็กกว่าขนาดของช่องที่จะแสดง)
สามารถใช้ช่องว่างหรือ 0 ได้ ค่าเริ่มต้นคือช่องว่าง คุณสามารถระบุอักขระตัวเติมอื่นๆ ได้หากคุณระบุไว้ในสตริงรูปแบบที่นำหน้าด้วยเครื่องหมายอะพอสทรอฟี
ตัวระบุการจัดตำแหน่งเพิ่มเติมที่ระบุว่าผลลัพธ์จะจัดชิดขวาหรือซ้ายของฟิลด์ ค่าเริ่มต้นคือการจัดตำแหน่งทางขวา แต่คุณสามารถระบุการจัดตำแหน่งทางซ้ายได้โดยการระบุสัญลักษณ์ - (ลบ)
หมายเลขทางเลือกที่ระบุขนาดของฟิลด์สำหรับการแสดงค่า หากผลลัพธ์ไม่อยู่ในฟิลด์ ผลลัพธ์จะ "ขยาย" เกินขอบของฟิลด์นี้ แต่จะไม่ถูกตัดทอน
ตัวเลขที่เป็นทางเลือก นำหน้าด้วยจุด "." ซึ่งระบุจำนวนตำแหน่งทศนิยมในสตริงผลลัพธ์
ตัวระบุนี้จะถูกนำมาพิจารณาเฉพาะเมื่อมีการส่งออกจำนวนจุดทศนิยม มิฉะนั้นจะถูกละเว้น
ในที่สุด ตัวระบุที่จำเป็น (หมายเหตุ - จำเป็นเท่านั้น!) ของประเภทของค่าที่จะวางในสตริงเอาต์พุต:
b - อาร์กิวเมนต์ถัดไปจากรายการจะถูกส่งออกเป็นจำนวนเต็มไบนารี
c - สัญลักษณ์พร้อมรหัสที่ระบุในอาร์กิวเมนต์จะปรากฏขึ้น
ง - จำนวนเต็ม
f - จำนวนจุดลอยตัว
o - จำนวนเต็มฐานแปด
s - สตริงอักขระ
x - จำนวนเต็มฐานสิบหกที่มีตัวอักษรเล็ก a-z
X เป็นจำนวนเต็มฐานสิบหกที่มีอักษรตัวใหญ่ A-Z
ต่อไปนี้เป็นวิธีระบุความแม่นยำของตัวเลขทศนิยม:
$เงิน1 = 68.75;
$เงิน2 = 54.35;
$เงิน = $เงิน1 + $เงิน2;
// echo $money จะแสดงผลเป็น "123.1"...
$formatted = sprintf("%01.2f", $money);
// echo $formatted จะแสดงผลเป็น "123.10"!
นี่คือตัวอย่างของการส่งออกจำนวนเต็มที่นำหน้าด้วยจำนวนศูนย์ที่ต้องการ:
$isodate=sprintf("%04d-%02d-%02d",$ปี,$เดือน,$วัน);
ตีความสตริงตามรูปแบบและป้อนค่าลงในตัวแปร
ไวยากรณ์:
sscanf แบบผสม (สตริง str, รูปแบบสตริง [, สตริง var1 ...])
ฟังก์ชัน sscanf() อยู่ตรงข้ามกับฟังก์ชัน printf()
โดยจะแปลสตริง str ตามรูปแบบ คล้ายกับข้อกำหนด printf()
เมื่อระบุเพียงสองอาร์กิวเมนต์ ค่าผลลัพธ์จะถูกส่งกลับในอาร์เรย์
// รับหมายเลขซีเรียล $serial = sscanf("SN/235-0001", "SN/%3d-%4d");
เสียงสะท้อน $serial*10,000+$serial; // เอาต์พุต: 2350001
// และวันที่ผลิต$date = "01 มกราคม 2000";
รายการ($เดือน, $วัน, $ปี) = sscanf($date, "%s %d %d");
echo "วันที่: $year-".substr($เดือน,0,3)."-$dayn";
// เอาต์พุต: 2000-ม.ค.-01
เมื่อระบุพารามิเตอร์ทางเลือกเพิ่มเติม (ควรส่งผ่านโดยการอ้างอิง)
ฟังก์ชันส่งคืนหมายเลขของพวกเขา ตัวแปรเหล่านั้นที่ไม่ได้รับค่าจะไม่นำมาพิจารณาในค่าตอบแทน
// สร้างบันทึก XML จากสตริง $auth = "765tLewis Carroll";
$n = sscan($auth,"%dt%s %s", &$id, &$first, &$last);
เสียงสะท้อน "
fprintf()
คำอธิบาย:
Int fprintf (ตัวจัดการทรัพยากร รูปแบบสตริง [, args แบบผสม])
เขียนสตริงที่สร้างขึ้นโดยใช้สตริงรูปแบบไปยังสตรีมที่มีการส่งผ่านหมายเลขอ้างอิงไปยังหมายเลขอ้างอิง อาร์กิวเมนต์รูปแบบถูกกล่าวถึงโดยละเอียดในคำอธิบายของฟังก์ชัน sprintf()
fprintf(): เติมด้วยศูนย์
กลับ;
fprintf($fp, "%04d-%02d-%02d", $ปี, $เดือน, $วัน);
// เขียนวันที่ที่จัดรูปแบบลงในไฟล์ date.txt
?>
fprintf(): การจัดรูปแบบค่าเงิน
ถ้า (!($fp = fopen("currency.txt", "w")))
กลับ;
$เงิน1 = 68.75;
$เงิน2 = 54.35;
$เงิน = $เงิน1 + $เงิน2;
// echo $money จะแสดงผลเป็น "123.1";
$เลน = fprintf($fp, "%01.2f", $money);
// สตริง "123.10" ถูกเขียนลงในไฟล์ currency.txt
echo "$len ไบต์ที่เขียนไปยังไฟล์ currency.txt";
?>
vfprintf()
เขียนสตริงที่จัดรูปแบบลงในสตรีม (PHP 5)
คำอธิบาย:
Int vfprintf (ตัวจัดการทรัพยากร, รูปแบบสตริง, อาร์เรย์ args)
เขียนสตริงที่จัดรูปแบบตามรูปแบบไปยังทรัพยากรสตรีมที่ระบุโดยหมายเลขอ้างอิง การจัดรูปแบบจะทำในลักษณะเดียวกับ sprintf()
ทำงานเหมือนกับ fprintf() แต่รับอาร์เรย์ของอาร์กิวเมนต์มากกว่าจำนวนอาร์กิวเมนต์ที่แปรผันได้
ส่งกลับความยาวของสตริงเอาท์พุต
ดูเพิ่มเติมที่: printf(), sprintf(), sscanf(), fscanf(), vsprintf() และ number_format()
ตัวอย่าง
vfprintf(): จำนวนเต็มไม่มีเบาะ
ถ้า (!($fp = fopen("date.txt", "w")))
กลับ;
vfprintf($fp, "%04d-%02d-%02d", array($ปี, $เดือน, $วัน));
// จะเขียนวันที่ ISO ที่จัดรูปแบบแล้วเป็น date.txt
?>
vprintf()
ส่งออกสตริงที่จัดรูปแบบ (PHP 4 >= 4.1.0, PHP 5)
คำอธิบาย:
Int vprintf (รูปแบบสตริง, อาร์เรย์ args)
ส่งออกค่าของอาร์เรย์ args ซึ่งจัดรูปแบบตามอาร์กิวเมนต์รูปแบบที่อธิบายไว้ในเอกสารประกอบฟังก์ชัน sprintf()
ฟังก์ชันนี้คล้ายกับ printf() แต่ใช้อาร์เรย์มากกว่าจำนวนอาร์กิวเมนต์ที่แปรผันได้
ส่งกลับความยาวของสตริงเอาท์พุต
ซึ่งบอกจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม
จัดรูปแบบตัวเลขด้วยการแยกกลุ่ม (PHP 3, PHP 4, PHP 5)
คำอธิบาย:
สตริง number_format (ตัวเลขลอยตัว [, ทศนิยม int])
สตริง number_format (ตัวเลขลอย, ทศนิยม int, สตริง dec_point, สตริง Thousand_sep)
number_format() ส่งคืนตัวเลขที่จัดรูปแบบแล้ว ฟังก์ชันรับหนึ่ง สอง หรือสี่อาร์กิวเมนต์ (ไม่ใช่สาม):
หากส่งผ่านอาร์กิวเมนต์เพียงตัวเดียว ตัวเลขจะถูกจัดรูปแบบโดยไม่มีส่วนที่เป็นเศษส่วน แต่จะมีเครื่องหมายจุลภาค (",") ระหว่างกลุ่มของตัวเลข 3 หลัก
หากส่งผ่านอาร์กิวเมนต์สองรายการ ตัวเลขจะถูกจัดรูปแบบด้วยทศนิยมหลังจุด (".") และเครื่องหมายจุลภาค (",") ระหว่างกลุ่มตัวเลข 3 หลัก
หากอาร์กิวเมนต์ทั้งสี่ถูกส่งผ่าน จำนวนจะถูกจัดรูปแบบด้วยทศนิยมหลังจุดและมีตัวคั่นระหว่างกลุ่มของตัวเลข 3 หลัก โดยใช้ dec_point เป็นจุดทศนิยมและ Thousand_sep เป็นตัวคั่นกลุ่ม
ใช้เฉพาะอักขระตัวแรกของบรรทัด Thousand_sep เท่านั้น ตัวอย่างเช่น หากคุณส่ง foo เป็น Thousand_sep เพื่อจัดรูปแบบตัวเลข 1000 number_format() จะส่งกลับ 1f000
ตัวอย่างการใช้ number_format()
ในฝรั่งเศส เป็นเรื่องปกติที่จะใช้ทศนิยม 2 ตำแหน่ง (",") และการเว้นวรรค (" ") เป็นตัวคั่นกลุ่ม การจัดรูปแบบนี้ได้มาจากการใช้รหัสต่อไปนี้:
$หมายเลข = 1234.56;
// รูปแบบภาษาอังกฤษ (ค่าเริ่มต้น)
$english_format_number = number_format($number);
// 1,234
// รูปแบบภาษาฝรั่งเศส
$nombre_format_francais = number_format($number, 2, ",", " ");
// 1 234,56
$หมายเลข = 1234.5678;
// รูปแบบภาษาอังกฤษโดยไม่มีตัวคั่นกลุ่ม
$english_format_number = number_format($number, 2, ".", "");
// 1234.57
ส่งกลับสตริงที่สร้างขึ้นโดยใช้รูปแบบสตริงรูปแบบ
สตริงรูปแบบประกอบด้วยคำสั่ง: อักขระปกติ (ยกเว้น %) ซึ่งจะถูกคัดลอกลงในสตริงผลลัพธ์ และ ตัวอธิบายการเปลี่ยนแปลง ซึ่งแต่ละรายการจะถูกแทนที่ด้วยพารามิเตอร์ตัวใดตัวหนึ่ง นอกจากนี้ยังใช้กับ fprintf() , วิ่ง()และ พิมพ์f() .
ตัวระบุการแปลงแต่ละรายการประกอบด้วยเครื่องหมายเปอร์เซ็นต์ (%) ตามด้วยองค์ประกอบเพิ่มเติมอย่างน้อยหนึ่งองค์ประกอบ (ตามลำดับที่แสดงไว้ที่นี่):
ระบุเป็นจุด (".") ตามด้วยสตริงทศนิยมซึ่งระบุจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม เมื่อใช้กับสตริง ตัวระบุนี้จะทำหน้าที่เป็นจุดตัดที่กำหนดจำนวนอักขระสูงสุด คุณยังสามารถระบุสัญลักษณ์ที่ใช้เติมตัวเลขระหว่างจุดและตัวเลขได้ - (หากต้องการจัดรูปแบบตัวเลขก็สะดวกในการใช้ฟังก์ชันนี้เช่นกัน
% คือสัญลักษณ์เปอร์เซ็นต์ อาร์กิวเมนต์ไม่ได้ใช้ b - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขฐานสอง c - อาร์กิวเมนต์ถือเป็นจำนวนเต็มและเอาต์พุตเป็นอักขระที่มีรหัส ASCII ที่สอดคล้องกัน d - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและส่งออกเป็นเลขทศนิยมที่ลงนาม e - อาร์กิวเมนต์ถูกตีความว่าเป็น ซึ่งระบุจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม มีความหมายสำหรับประเภทข้อมูลตัวเลขเท่านั้นและส่งออกในรูปแบบสัญกรณ์วิทยาศาสตร์ (เช่น 1.2e+2) คุณ - อาร์กิวเมนต์ถือเป็นจำนวนเต็มและส่งออกเป็นเลขทศนิยมที่ไม่ได้ลงนาม f - อาร์กิวเมนต์ถูกตีความว่าเป็น ซึ่งระบุจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม มีความหมายสำหรับประเภทข้อมูลตัวเลขเท่านั้นและส่งออกเป็นเลขทศนิยม o - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและเอาต์พุตเป็นเลขฐานแปด s - อาร์กิวเมนต์จะถือเป็นสตริง x - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและส่งออกเป็นเลขฐานสิบหก (เป็นตัวพิมพ์เล็ก) X - อาร์กิวเมนต์จะถือเป็นจำนวนเต็มและส่งออกเป็นเลขฐานสิบหก (ใช้อักษรตัวพิมพ์ใหญ่)
ไม่จำเป็น ตัวระบุช่องว่างภายใน ซึ่งระบุอักขระที่จะใช้เพื่อขยายผลลัพธ์ตามความยาวที่ต้องการ นี่อาจเป็นช่องว่างหรือ 0 ค่าเริ่มต้นคือช่องว่าง
ไม่จำเป็น - ดูตัวอย่างด้านล่าง อักขระทางเลือกสามารถระบุได้ด้วย " ดูตัวอย่างด้านล่าง
ซึ่งกำหนดการจัดตำแหน่งไปทางซ้ายหรือขวา ตามค่าเริ่มต้น จะจัดชิดขวา - ใช้สำหรับจัดชิดซ้าย หมายเลขเสริม หมายเลขเสริม
ไม่จำเป็น ซึ่งระบุจำนวนอักขระขั้นต่ำที่ผลลัพธ์ของการแปลงนี้จะมี ซึ่งระบุจำนวนอักขระขั้นต่ำที่ผลลัพธ์ของการแปลงนี้จะมี ซึ่งระบุจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม มีความหมายสำหรับประเภทข้อมูลตัวเลขเท่านั้นลอย ซึ่งบอกจำนวนตำแหน่งทศนิยมที่จะแสดงสำหรับตัวเลขทศนิยม .)
ตั้งแต่ PHP 4.0.6 สตริงรูปแบบรองรับการกำหนดหมายเลขและการเรียงลำดับพารามิเตอร์ใหม่ ตัวอย่างเช่น:
ตัวอย่างที่ 2: การเปลี่ยนลำดับของพารามิเตอร์
|
ตัวอย่างที่ 3: การเปลี่ยนลำดับของพารามิเตอร์
|