3 กรกฎาคม 2557

ฟังก์ชั่น แปลง ip และ ข้อมูลใน textbox ภาษา PHP

การแปลงตัวอักษรเป็น ip ใช้ฟังก์ชั่น long2ip($text);

ปกติ เวลาที่เราสร้าง field ใน database เพื่อเก็บข้อมูล ที่เป็น ip เราจะต้องสร้าง char(15) หรือบางคนก็สร้าง varchar(15) หรือบางคน (อันนี้น่าจะเป็นคนที่มือใหม่จริงๆ) ก็สร้างเป็นชนิด text เลย ซึ่ง แต่ละกรณี ทำให้เปลืองพื้นที่มาก เอาอย่างเช่น char(15) เราก็ต้องใช้ 15 bytes ต่อการเก็บ 1 หมายเลข IP หรือ varchar ใช้ 16 bytes และ text ใช้ 17 bytes กันเลยทีเดียว นี่ยังไม่นับที่เป็น กรณี UTF-8 อีก เพราะว่าถ้าเป็น UTF-8 ก็จะใช้พื้นที่ 45, 48, 51 byte ตามลำดับ ต่อ1ip เลยทีเดียว ถือว่าเปลืองมากเพราะลองคิดดูว่าหากเป็นแสน record คงจะใช้พื้นที่ไม่น้อยเลย และจะดีกว่ามั้ย ถ้าเราลดเหลือแค่ 4 byte ต่อ 1 ip
วิธีง่ายมากแต่ต้องมีตัวช่วย ก็คือ php function ip2long($ip) และ long2ip($ip) ซึ่งจะทำหน้าที่แปลง ip ให้เป็น ตัวเลข และแปลงตัวเลขกลับมาเป็น ip โดย ฐานข้อมูลเราใช้เพียง int ชนิด unsigned ซึ่งใช้เพียง 4 byte ต่อ 1 record เท่านั้น
วิธีการก็คือ เก็บ ip ใส่ตัวแปร $ip แล้วเอาไปผ่าน

การแปลงจาก ip เป็นตัวอักษร ใช้ฟังก์ชั่น ip2long($text);
การแสดงข้อมูลจาก textbox โดยมีการขึ้นบรรทัดใหม่ ใช้ nl2br($text);

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