GORAGOD.com

freelance, web developer, web designer, hosting, domain name

การ แทนที่ข้อความ ip address ด้วย xxx

โค้ดสำหรับการแสดง IP Address ด้วยการบล๊อกตำแหน่งหลังของ IP เช่น

IP 127.0.0.1 แสดงผลเป็น 127.0.xxx.xxx (หลักหลังคงที่)

หรือ

IP 111.222.11.33 แสดงผลเป็น 111.222.xx.xx (หลักหลังตามหลักหน้า)

ซึ่งสามารถทำได้หลายวิธี ลองเลือกไปใช้สักวิธีดูนะครับ

<?php
     $ip1 = '127.0.0.1';
     $ip2 = '111.222.11.33';
    
     // แบบที่ 1 ใช้ explode
     list($a, $b, $c, $d) = explode('.', $ip1); // แยก IP ออกเป็นตำแหน่งต่างๆ
     echo "$a.$b.xxx.xxx"; // ผลลัพท์สามารถเลือกได้ว่าจะบล๊อกตำแหน่งไหนบ้าง
    
     echo '<br />';
    
     // แบบที่ 2 ใช้ preg_replace แบ่งออกเป็น 2 กลุ่มโดยแทนที่กลุ่มหลังด้วย xxx.xxx
     echo preg_replace('/([0-9]+\.[0-9]+)\.[0-9]+\.[0-9]+/', '<span style="color:red">.xxx.xxx</span>', $ip2);
     
      // แบบที่ 3 ใช้ preg_replace แทนที่รายการที่ block ทีละตัวตามตำแหน่งของมัน
      function bockipstr( $ip ) {
          preg_match('/([0-9]+\.[0-9]+\.)([0-9\.]+)/', $ip, $ips); // แยกออกเป็น 2 กลุ่ม คือ 2 หลักหน้า และ 2 หลักหลัง
          return  $ips[1].preg_replace('/[0-9]/','<span style="color:red">x</span>',$ips[2]); // แทนที่ตัวเลขหลักหลังด้วย x ทีละตัว
      }
     
      echo '<br />';
      echo "$ip1 = ".bockipstr($ip1);
      echo '<br />';
      echo "$ip2 = ".bockipstr($ip2);
?>

จากตัวอย่างด้านบน จะเห็นได้ว่า เราอาจมีหลายวิธีเพื่อที่จะได้ผลลัพท์ตามที่ต้องการได้ โดยที่ไม่จำเป็นต้องหาอะไรที่ซับซ้อนเลยครับ โดยอาจเลือกใช้วิธีใดที่เราถนัดมาประยุกต์ใช้ครับ
0SHAREFacebookLINE it!
^