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

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

AePongsak
PHP VIP Members
PHP VIP Members
Posts: 4996
Joined: 17/09/2016 10:09 am

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

Post by AePongsak »

สมมุติว่าผมมีข้อมูลเป็น ip 123.123.123.123
ต้องการอยากปิดตัวเลขชุดสุดท้ายหลัง . แล้วให้แสดงเป็น string ***

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

Code: Select all

<?php echo substr($fetch['ip'], 0, strrpos($fetch['ip'], '.')); ?>
ไม่ทราบว่าต้องเช็คเงื่อนไขอะไรไหมครับ :baa:
Image
ξν℮ry story has an end but in life every end is a neω ßeginning.

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 25240
Joined: 31/03/2014 10:02 am
Contact:

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

Post by 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

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

AePongsak
PHP VIP Members
PHP VIP Members
Posts: 4996
Joined: 17/09/2016 10:09 am

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

Post by AePongsak »

ผลลัพธ์

Image
Image
ξν℮ry story has an end but in life every end is a neω ßeginning.

AePongsak
PHP VIP Members
PHP VIP Members
Posts: 4996
Joined: 17/09/2016 10:09 am

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

Post by AePongsak »

thatsawan wrote:ลองใช้ค้นหาเเล้วเเทนที่ 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

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

Image

Code: Select all

   <?php
                                                                         
                                                                           $aeip = $fetch['ip'];
                                                                           $aeip1 = explode(".", $aeip);
                                                                           echo $aeip1[0]; // 123
                                                                           echo $aeip1[1]; // 124
                                                                           echo $aeip1[2]; // 125
                                                                           echo $aeip1[3]; // 126
                                                                           
                                                                           ?>
Image
ξν℮ry story has an end but in life every end is a neω ßeginning.

AePongsak
PHP VIP Members
PHP VIP Members
Posts: 4996
Joined: 17/09/2016 10:09 am

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

Post by AePongsak »

ไม่แบ่งจุดอ่าครับ แล้วจะทำข้อมูลเป็นสตริงได้ยังไงอะครับ
Image
ξν℮ry story has an end but in life every end is a neω ßeginning.

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 11991
Joined: 18/04/2012 9:39 am

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

Post by tsukasaz »

ลองใช้ preg_replace ดูไหมครับ

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

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

Code: Select all

echo preg_replace('/\.\d{1,3}\z/', '.***', '192.168.1.100'); 
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

AePongsak
PHP VIP Members
PHP VIP Members
Posts: 4996
Joined: 17/09/2016 10:09 am

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

Post by AePongsak »

เดียวลองดูนะครับ
Image
ξν℮ry story has an end but in life every end is a neω ßeginning.

AePongsak
PHP VIP Members
PHP VIP Members
Posts: 4996
Joined: 17/09/2016 10:09 am

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

Post by AePongsak »

tsukasaz wrote:ลองใช้ preg_replace ดูไหมครับ

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

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

Code: Select all

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

Image

Code: Select all

 <?php
               $aeip = $fetch['ip'];
               echo preg_replace('/\.\d{1,3}\z/', '.***', $aeip); 
           ?>
Image
ξν℮ry story has an end but in life every end is a neω ßeginning.

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 7 guests