หน้า 1 จากทั้งหมด 1

มีคำถามเกี่ยวกับ php ครับ

โพสต์แล้ว: 13/02/2018 5:46 pm
โดย AePongsak
สมมุติว่าผมมีข้อมูลเป็น ip 123.123.123.123
ต้องการอยากปิดตัวเลขชุดสุดท้ายหลัง . แล้วให้แสดงเป็น string ***

ตอนนี้ผมใช้คำสั่ง substr และ strrpos (แต่มันปิดการแสดงเลขชุดหลังไปเลย)

โค้ด: เลือกทั้งหมด

<?php echo substr($fetch['ip'], 0, strrpos($fetch['ip'], '.')); ?>
ไม่ทราบว่าต้องเช็คเงื่อนไขอะไรไหมครับ :baa:

Re: มีคำถามเกี่ยวกับ php ครับ

โพสต์แล้ว: 13/02/2018 5:50 pm
โดย 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

แล้วเรามาเปลี่ยนค่า เเล้วก็เเสดงกลับออกไปเป็น สตริง

Re: มีคำถามเกี่ยวกับ php ครับ

โพสต์แล้ว: 13/02/2018 5:50 pm
โดย AePongsak
ผลลัพธ์

รูปภาพ

Re: มีคำถามเกี่ยวกับ php ครับ

โพสต์แล้ว: 13/02/2018 6:01 pm
โดย AePongsak
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
                                                                           
                                                                           ?>

Re: มีคำถามเกี่ยวกับ php ครับ

โพสต์แล้ว: 13/02/2018 6:02 pm
โดย AePongsak
ไม่แบ่งจุดอ่าครับ แล้วจะทำข้อมูลเป็นสตริงได้ยังไงอะครับ

Re: มีคำถามเกี่ยวกับ php ครับ

โพสต์แล้ว: 14/02/2018 1:34 pm
โดย tsukasaz
ลองใช้ preg_replace ดูไหมครับ

โดยกำหนดให้มันค้นหาตัวเลขตำแหน่งสุดท้าย
\d คือ ข้อมูลที่เป็นตัวเลข
{1,3} คือ จำนวน 1 - 3 ตัว
และ \z คือ อยู่ในตำแหน่งสุดท้าย

ตัวอย่างโค้ด

โค้ด: เลือกทั้งหมด

echo preg_replace('/\.\d{1,3}\z/', '.***', '192.168.1.100'); 

Re: มีคำถามเกี่ยวกับ php ครับ

โพสต์แล้ว: 14/02/2018 1:54 pm
โดย AePongsak
เดียวลองดูนะครับ

Re: มีคำถามเกี่ยวกับ php ครับ

โพสต์แล้ว: 14/02/2018 2:55 pm
โดย AePongsak
tsukasaz เขียน:ลองใช้ preg_replace ดูไหมครับ

โดยกำหนดให้มันค้นหาตัวเลขตำแหน่งสุดท้าย
\d คือ ข้อมูลที่เป็นตัวเลข
{1,3} คือ จำนวน 1 - 3 ตัว
และ \z คือ อยู่ในตำแหน่งสุดท้าย

ตัวอย่างโค้ด

โค้ด: เลือกทั้งหมด

echo preg_replace('/\.\d{1,3}\z/', '.***', '192.168.1.100');
ได้แล้วครับ สำหรับชุดข้อมูลที่ fetch มาจากฐานก็สามารถใช้ได้เหมือนกันแต่รูปแบบข้อมูลต้อง ข้อมูลที่เป็นตัวเลข > จำนวน 1 - 3 ตัว > และเปลี่ยนตัวเลขชุดหลังสุด

รูปภาพ

โค้ด: เลือกทั้งหมด

 <?php
               $aeip = $fetch['ip'];
               echo preg_replace('/\.\d{1,3}\z/', '.***', $aeip); 
           ?>