แยกสตริง:
<?php$str = "อายุ:30 น้ำหนัก:60kg";sscanf($str,"age:%d น้ำหนัก:%dkg",$age,$weight);// ประเภทการแสดงและค่าvar_dump($age,$weight );?>ฟังก์ชัน sscanf() แยกวิเคราะห์อินพุตจากสตริงตามรูปแบบที่ระบุ ฟังก์ชัน sscanf() แยกวิเคราะห์สตริงเป็นตัวแปรตามสตริงรูปแบบ
หากคุณส่งผ่านอาร์กิวเมนต์เพียงสองตัวไปยังฟังก์ชัน ข้อมูลจะถูกส่งกลับเป็นอาร์เรย์ มิฉะนั้น หากมีการส่งผ่านพารามิเตอร์เพิ่มเติม ข้อมูลที่แยกวิเคราะห์จะถูกจัดเก็บไว้ในพารามิเตอร์เหล่านี้ ถ้าจำนวนตัวคั่นมากกว่าจำนวนตัวแปรที่มีอยู่ จะเกิดข้อผิดพลาดขึ้น อย่างไรก็ตาม หากจำนวนตัวคั่นน้อยกว่าจำนวนตัวแปรที่มีอยู่ ตัวแปรเพิ่มเติมจะมีค่า NULL
ฟังก์ชั่นที่เกี่ยวข้อง:
printf() - ส่งออกสตริงที่จัดรูปแบบแล้ว
sprintf() - เขียนสตริงที่จัดรูปแบบแล้วลงในตัวแปร
sscanf( สตริง รูปแบบ arg1,arg2,arg++ )
พารามิเตอร์ | อธิบาย |
---|---|
เชือก | ที่จำเป็น. ระบุสตริงที่จะอ่าน |
รูปแบบ | ที่จำเป็น. ระบุรูปแบบที่จะใช้ ค่ารูปแบบที่เป็นไปได้: %% - ส่งกลับเครื่องหมายเปอร์เซ็นต์ % %c - อักขระที่สอดคล้องกับค่า ASCII %d - เลขทศนิยมที่มีเครื่องหมาย (ลบ, 0, บวก) %e - ใช้สัญลักษณ์ทางวิทยาศาสตร์ตัวพิมพ์เล็ก (เช่น 1.2e+2) %u - เลขทศนิยมที่ไม่มีเครื่องหมาย (มากกว่าหรือเท่ากับ 0) %f - จำนวนจุดลอยตัว %o - เลขฐานแปด %s - สตริง %x - เลขฐานสิบหก (ตัวพิมพ์เล็ก) %X - เลขฐานสิบหก (ตัวพิมพ์ใหญ่) ค่ารูปแบบเพิ่มเติม ต้องอยู่ระหว่าง % และตัวอักษร (เช่น %.2f): + (เพิ่ม + หรือ - หน้าตัวเลขเพื่อกำหนดเครื่องหมายของตัวเลข โดยค่าเริ่มต้น ระบบจะทำเครื่องหมายเฉพาะตัวเลขลบเท่านั้น และจะไม่ทำเครื่องหมายตัวเลขบวก) ' (ระบุสิ่งที่จะใช้เป็นช่องว่างภายใน โดยค่าเริ่มต้นคือการเว้นวรรค โดยจะต้องใช้ร่วมกับตัวระบุความกว้าง ตัวอย่างเช่น: %'x20s (ใช้ "x" เป็นช่องว่างภายใน)) - (ค่าตัวแปรการปรับด้านซ้าย) [0-9] (ระบุความกว้างต่ำสุดของค่าตัวแปร) .[0-9] (ระบุจำนวนตำแหน่งทศนิยมหรือความยาวสตริงสูงสุด) หมายเหตุ: หากใช้ค่ารูปแบบข้างต้นหลายค่า จะต้องใช้ค่าเหล่านั้นตามลำดับด้านบนและไม่สามารถรบกวนได้ |
หาเรื่อง1 | ไม่จำเป็น. ตัวแปรตัวแรกในการจัดเก็บข้อมูล |
หาเรื่อง2 | ไม่จำเป็น. ตัวแปรที่สองในการจัดเก็บข้อมูล |
หาเรื่อง++ | ไม่จำเป็น. ตัวแปรที่สามและสี่ที่เก็บข้อมูล และอื่นๆ |
ค่าส่งคืน: | หากคุณส่งผ่านอาร์กิวเมนต์เพียงสองตัวไปยังฟังก์ชัน ข้อมูลจะถูกส่งกลับเป็นอาร์เรย์ มิฉะนั้น หากมีการส่งผ่านพารามิเตอร์เพิ่มเติม ข้อมูลที่แยกวิเคราะห์จะถูกจัดเก็บไว้ในพารามิเตอร์เหล่านี้ ถ้าจำนวนตัวคั่นมากกว่าจำนวนตัวแปรที่มีอยู่ จะเกิดข้อผิดพลาดขึ้น อย่างไรก็ตาม หากจำนวนตัวคั่นน้อยกว่าจำนวนตัวแปรที่มีอยู่ ตัวแปรเพิ่มเติมจะมีค่า NULL |
---|---|
เวอร์ชัน PHP: | 4.0.1+ |
ใช้ค่ารูปแบบ %s, %d และ %c:
<?php$str = "ถ้าคุณหาร 4 ด้วย 2 คุณจะได้ 2";$format = sscanf($str,"%s %s %s %d %s %d %s %s %c"); print_r($รูปแบบ);?>