Okey,所以我知道我可以通过使用preg_replace从字符串中删除字母和数字。但这是我想做的。
我正在使用一个名为Engage forms的wordpress插件,该插件将提交的数据存储在mySQL数据库中。
棘手的部分是,由于某些原因,提交的数据没有干净地存储。(原因是制作插件的开发人员对此有一些追求,我不知道如果没有未知的数字和字母,他们是如何打印出来的。)
我的意思是:
我提交数据
- 名字:Peter
- 姓氏:Stormare
- 电子邮件:storm@ren.com
- 电话:0736997385
以下是mySQL数据库中的数据的外观以及它在网页上的打印方式:
很乱
a: 4:{s:18:"firstname25601459863853";s:5:"Peter";s:23:"lastnamn771514598863853";s:8:"Stormare";s:19:"email5851459986383";s:13:"Storm@ren.com";s:21:"电话22101459863853";s:10:"0736997385";}
我尝试清理数据
所以我试着利用我的小知识,尽可能多地利用
$patterns = array();
$patterns[0] = '/[{}]/';
$patterns[1] = '/[a-x]:[0-9]/';
$patterns[2] = '/[0-9]:/';
$patterns[3] = '/[a-x]:/';
$patterns[4] = '/[":"]/';
$patterns[5] = '/;/';
$patterns[6] = '/namn[1]/';
$replacements = array();
$replacements[2] = '';
$replacements[1] = '';
$replacements[0] = '';
$replacements[3] = '';
$replacements[4] = ' ';
$replacements[10] = ''
echo preg_replace($patterns, $replacements, $leadslist);
现在应该输出这个:
名字25601459863853 Peter名字771514598863853 Stormare电子邮件5851459986383Storm@ren.com电话:22101459863853 0736997385
大问题
我现在可以在不删除电话号码的情况下,针对名字后面的随机数字和其他数字吗?(示例电话号码是0736997385。
可能的解决方案
最佳解决方案atm由用户提交:Pei turn。
他教我如何去掉大于10位数的数字。在Preg_replace()中使用此模式
$patterns[3] = '/[0-9]{0,9}[0-9]{11,}/';
这个效果很好。我唯一担心的是,如果一些数据可能会因为未来提交的奇怪表格而被删除。
一个电话号码有10位数字,请尝试删除所有小于10且长于10 的号码序列
[0-9]{0,9}[0-9]{11,}