งานอย่างหนึ่งที่จะเจอบ่อยในการเขียนโปรแกรม นอกจากการตรวจสอบความถูกต้องของข้อมูล ก็คือ การจัดรูปแบบข้อมูล  เช่น เบอร์โทรศัพท์มือถือ เบอร์โทรศัพท์บ้าน เป็นต้น

ถามว่าทำไมไม่ให้ยูสเซอร์ป้อนมาให้ครบล่ะ ไม่ต้องมาจัดรูปแบบอีก ก็เพราะว่า ยูสเซอร์แต่ละคนเนี่ยป้อนข้อมูลไม่ค่อยจะเหมือนกันสักเท่าไร ยกตัวอย่างเบอร์โทร บางคนป้อน 08-59490862 บางคนป้อน 085-9490862 และยังอีกอีกแยะ ที่จะสรรหามาป้อนกัน

จึงเป็นการจะถูกต้องกว่าถ้าให้เขาป้อนเข้ามาเฉพาะตัวข้อมูลล้วนๆ แล้วค่อยมาเขียนโปรแกรมจัดรูปแบบเอง เอาล่ะเมื่อรู้เหตุแล้ว เรามาจัดรูปแบบเบอร์โทรศัพท์มือถือกัน

เราจะให้เบอร์อยู่ในรูปแบบ ### – #### – ###

อาวุธที่เราจะใช้คือ substr()  ตัดให้ขาดเลย ฉับๆๆ แล้วค่อยเอามาต่อกันให้เป็นรูปแบบที่ต้องการ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
// จัดให้อยู่ในรูปแบบนี้ ### - #### - ### 
 
// สมมติเบอร์นี้
$mobile = "0859490862" ; 
 
// กำหนดเครื่องหมาย 
$minus_sign = "-" ; 
 
// เริ่มจากซ้ายตัวที่ 1 ( 0 ) ตัดทิ้งขวาทิ้ง 7 ตัวอักษร ได้ 085 
$part1 = substr ( $mobile , 0 , -7 ) ; 
 
// เริ่มจากซ้าย ตัวที่ 4 (9) ตัดทิ้งขวาทิ้ง 3 ตัวอักษร ได้ 9490 
$part2 = substr( $mobile , 3 , -3 ) ; 
 
// เริ่มจากซ้าย ตัวที่ 8 (8) ไม่ตัดขวาทิ้ง ได้ 862 
$part3 = substr( $mobile , 7 ) ; 
 
echo $part1. $minus_sign . $part2 . $minus_sign . $part3 ; 
 
?>