ฟังก์ชัน sscanf() ของ PHP
ตัวอย่าง
ตัวอย่างการแปลงซตริง:
<?php $str = "age:30 weight:60kg"; sscanf($str,"age:%d weight:%dkg",$age,$weight); // แสดงรูปแบบและค่า var_dump($age,$weight); ?>
การเรียกใช้และความหมาย
ฟังก์ชัน sscanf() นับและประมวลค่าที่มาจากซตริง ฟังก์ชัน sscanf() นับและประมวลค่าที่มาจากซตริงตามรูปแบบที่กำหนด
ถ้าส่งค่าสองตัวแปรเท่านั้นแล้ว ข้อมูลจะกลับมาในรูปแบบของตัวแปรที่เป็นตัวเรียงตามตัวแปร หรือถ้าส่งค่าเพิ่มเติม ข้อมูลที่ถูกประมวลเก็บไว้ในตัวแปรเหล่านั้น ถ้าจำนวนตัวแปรที่กำหนดมามากกว่าจำนวนตัวแปรที่มีอยู่ จะเกิดข้อผิดพลาด แต่ถ้าจำนวนตัวแปรที่กำหนดมาน้อยกว่าจำนวนตัวแปรที่มีอยู่ ตัวแปรเพิ่มเติมจะมีค่า NULL
ฟังก์ชันที่เกี่ยวข้อง:
รูปแบบ
sscanf(string,format,arg1,arg2,arg++)
ตัวแปร | คำอธิบาย |
---|---|
string | จำเป็นต้องมีค่า。กำหนดซตริงที่ต้องอ่าน |
format |
จำเป็นต้องมีค่า。กำหนดรูปแบบที่ต้องใช้ ค่ารูปแบบที่เป็นไปได้:
รูปแบบที่เพิ่มเติม. จำเป็นต้องทำการวางในระหว่าง % และตัวอักษร (เช่น %.2f):
หมายเหตุ:ถ้าใช้รูปแบบที่กล่าวข้างต้นหลายรูปแบบ ต้องใช้ตามลำดับที่กล่าวข้างต้น |
arg1 | ตัวเลือกได้. ตัวแปรที่เก็บข้อมูลในตัวแปรที่หนึ่ง |
arg2 | ตัวเลือกได้. ตัวแปรที่เก็บข้อมูลในตัวแปรที่สอง |
arg++ | ตัวเลือกได้. ตัวแปรที่เก็บข้อมูลในตัวแปรที่สามและสี่ ตามไป |
รายละเอียดเทคนิค
ค่าที่กลับมา | ถ้าส่งค่าเพียงสองตัวเลขแก่ฟังก์ชันนี้ เช่นเดียวกับส่งค่าเพิ่มเติม ข้อมูลที่นำมาทำนายจะกลับมาในรูปแบบของแถว หากส่งค่าเพิ่มเติม ข้อมูลที่นำมาทำนายจะถูกเก็บไว้ในตัวแปรที่ส่งมา เมื่อจำนวนของเครื่องหมายแบ่งของมากกว่าจำนวนตัวแปรที่มี จะเกิดข้อผิดพลาด อย่างไรก็ตาม ถ้าจำนวนของเครื่องหมายแบ่งของน้อยกว่าจำนวนตัวแปรที่มี ตัวแปรที่เหลืออยู่จะมีค่า NULL |
เวอร์ชัน PHP: | 4.0.1+ |
ตัวอย่างเพิ่มเติม
ตัวอย่าง 1
ใช้ค่ารูปแบบ %s、%d และ %c:
<?php $str = "If you divide 4 by 2 you'll get 2"; $format = sscanf($str,"%s %s %s %d %s %d %s %s %c"); print_r($format); ?>