2010-10-30 35 views
1

我已经使用cakephp,并且想要隐藏超过六位数字的所有数字。如何掩盖textarea字段中的数字

像这样

$string = "My id number is 77765444 in Sales dept."; 

becomes 

$string = "My id number is XXXXXXXX in Sales dept." 

我感谢所有帮助。

谢谢。

回答

5

尝试此使用preg_replace_callbackanonymous function

$string = preg_replace_callback('/\d{6,}/', function($match) { return str_repeat('X', strlen($match[0])); }, $string); 

匿名功能用于以相同的量的X取代的六个或更多个连续的数字每次出现。如果您的PHP版本不支持匿名函数(自5.3开始可用),请改用普通函数。

1
$string = preg_replace('/\d/', 'X', "My id number is 77765444 in Sales dept."); 
+0

不,这只会将所有数字转换为X,这不是OP所要求的。 – 2010-10-30 08:00:28

+0

你的意思是1)如果该数字不超过6位数字,2)如果数字出现多次,例如''出于某种原因,销售部门有2个ID号码77765444“ – 2010-10-30 09:25:39