ถ้าเกิดอยากโชว์ ตัวเลขเฉพาะสองตัวแรกส่วนข้างหลังจะมีกี่ตัวก็ให้โชว์เป็น x ตามจำนวน ต้องเขียน Regular expression ยังไงครับ



ขอบคุณครับ
BlueEye วิโรจน์ คชินทร์ 13 Nov 2012 08:51
ขออนุญาตครับ

$str = substr($text, 0, 2).str_repeat('x', strlen($text) - 2);

แบบนี้น่าจะถูกกว่ามั้ยครับ เพราะ substr($text,2) มันตัดสองตัวหน้าออก

และตรง str_len น่าจะเป็น strlen
กรกฎ วิริยะ 13 Nov 2012 10:56
ใช้ regular น่าจะยากไปนะครับ



ใช้วิธีนับตัวอักษร จะดีกว่ามั้งครับ ด้วยการตัดตัวอักษรตัวแรกออก แล้วแทนที่ตัวอักษรที่เหลือด้วย xxx



<?php
 $text = '0123456789';
 $len = strlen($text);
  $a = substr($text,0,2);
  $text = $a.str_repeat('x', $len-2);
 echo $text;
?>
กรกฎ วิริยะ 13 Nov 2012 10:58
555++



ความผิดของผมเองแหละครับ ดูมันก็แหม่งๆ อยู่ แต่เนื่องจากเป็นฟังก์ชั่นที่ไม่ค่อยได้ใช้ครับ laugh



ผมแก้ไขให้แล้วนะครับ (ทดสอบแล้วด้วย)
Popup Art 13 Nov 2012 14:28
ขอบคุณครับ



ผมลองเขียนแบบนี้

preg_replace('/(?!^.?)[0-9](?!(.){-1}$)/', 'X', number_format($value));

มันจะแสดงแค่ตัวแรก เช่น 1,000 => 1,XXX ครับ ด้วยความอยากได้ code ที่สั้น สงสัยผมคิดยากไป 55+