ต้องการอยากปิดตัวเลขชุดสุดท้ายหลัง . แล้วให้แสดงเป็น string ***
ตอนนี้ผมใช้คำสั่ง substr และ strrpos (แต่มันปิดการแสดงเลขชุดหลังไปเลย)
โค้ด: เลือกทั้งหมด
<?php echo substr($fetch['ip'], 0, strrpos($fetch['ip'], '.')); ?>
Moderator: mindphp, ผู้ดูแลกระดาน
โค้ด: เลือกทั้งหมด
<?php echo substr($fetch['ip'], 0, strrpos($fetch['ip'], '.')); ?>
thatsawan เขียน:ลองใช้ค้นหาเเล้วเเทนที่ str_replace()
หรือ
แบ่งชุด สตริงให้เป็น array
เช่น 123.123.123.123
$pizza = "123.124.125.126";
$pieces = explode(".", $pizza);
echo $pieces[0]; // 123
echo $pieces[1]; // 124
echo $pieces[2]; // 125
echo $pieces[3]; // 126
แล้วเรามาเปลี่ยนค่า เเล้วก็เเสดงกลับออกไปเป็น สตริง
โค้ด: เลือกทั้งหมด
<?php
$aeip = $fetch['ip'];
$aeip1 = explode(".", $aeip);
echo $aeip1[0]; // 123
echo $aeip1[1]; // 124
echo $aeip1[2]; // 125
echo $aeip1[3]; // 126
?>
โค้ด: เลือกทั้งหมด
echo preg_replace('/\.\d{1,3}\z/', '.***', '192.168.1.100');
ได้แล้วครับ สำหรับชุดข้อมูลที่ fetch มาจากฐานก็สามารถใช้ได้เหมือนกันแต่รูปแบบข้อมูลต้อง ข้อมูลที่เป็นตัวเลข > จำนวน 1 - 3 ตัว > และเปลี่ยนตัวเลขชุดหลังสุดtsukasaz เขียน:ลองใช้ preg_replace ดูไหมครับ
โดยกำหนดให้มันค้นหาตัวเลขตำแหน่งสุดท้าย
\d คือ ข้อมูลที่เป็นตัวเลข
{1,3} คือ จำนวน 1 - 3 ตัว
และ \z คือ อยู่ในตำแหน่งสุดท้าย
ตัวอย่างโค้ดโค้ด: เลือกทั้งหมด
echo preg_replace('/\.\d{1,3}\z/', '.***', '192.168.1.100');
โค้ด: เลือกทั้งหมด
<?php
$aeip = $fetch['ip'];
echo preg_replace('/\.\d{1,3}\z/', '.***', $aeip);
?>
สมาชิกกำลังดูบอร์ดนี้: Bing [Bot] และบุคลทั่วไป 101