วันพฤหัสบดีที่ 15 ธันวาคม พ.ศ. 2554

[PHP] substr, strlen และ strrpos


วันนี้ชวนมาทบทวน function พื้นฐานใน php ว่าด้วย substr, strlen และ strrpos


หากเราต้องการจะแทนที่อะไรสักอย่างในตำแหน่งใดตำแหน่งหนึ่ง ด้วยเครื่องหมาย xxx หรือ ****
เช่น ผู้ใช้มีรหัสผ่านชุดหนึ่ง 123456789 เราอยากจะแทนที่ 3 ตำแหน่งสุดท้ายอันได้แก่ 789 ด้วยเครื่องหมาย xxx หรือ ***  จะทำอย่างไร?

พระเอกในโจกทย์นี้คือ substr + strlen
substr ( string, start, length ); //ใช้ดึงข้อความตั้งแต่ตำแหน่งที่กำหนด ตามจำนวนที่กำหนด
ส่วน strlen  strlen ( string ); //ใช้นับจำนวนอักษรทั้งหมด

ตัวอย่างการใช้งาน
echo substr($_POST['password'],0,strlen($_POST['password'])-3)."***";

ผลลัพธ์ 123456***


แต่ถ้าจะแทนที่ชุดอักษรที่มีเครื่องหมายคั่นระหว่างเช่น ตัวเลขไอพี  125.115.620 เราต้องการจะแทนตัวเลขชุดสุดท้าย ด้วยเครื่องหมาย xxx ให้ได้ผลลัพธ์ 125.115.xxx
ให้ใช้ substr + strrpos 
strrpos ( string, find, start ); //ใช้ค้นหาข้อความที่กำหนดใน string จากหลังมาหน้า โดยจะคืนค่าตำแหน่งแรกที่พบ หรือคืนค่า false ถ้าไม่พบ ( การค้นหานี้คำนึงถึงตัวพิมพ์เล็กพิมพ์ใหญ่ ) 

ตัวอย่างการใช้งาน


$ip=" 125.115.620";
echo substr($ip,0,strrpos($ip,'.')).".xxx"
ผลลัพทธ์  125.115.xxx


ไม่มีความคิดเห็น:

แสดงความคิดเห็น