我可以从字符串中删除随机数字和字母。但只保留重要的

时间:2016-04-06 07:38:50

标签: php mysql wordpress

Okey所以我知道我可以使用 preg_replace 从字符串中删除字母和数字。但这就是我想要做的事情。

我正在使用一个名为 Engage forms 的wordpress插件,它将提交的数据存储在mySQL数据库中。

棘手的部分是,由于某种原因,提交的数据并未完全存储。 (原因是开发者为这个插件制作了一些紫色,我不知道如何在没有未知数字和字母的情况下打印出来。)

这就是我的意思:
我提交数据

  • 名字:彼得
  • 姓氏:Stormare
  • 电子邮件:storm@ren.com
  • 电话:0736997385

以下是mySQL数据库中的数据如何显示以及如何在网页上打印出来的数据:

非常凌乱

一个:4:{S:18:" firstname25601459863853&#34 ;; S:5:"彼得&#34 ;; S:23:" lastnamn77151459863853&#34 ;; S:8 :"斯特曼&#34 ;; S:19:" email58511459863853&#34 ;; S:13:" Storm@ren.com" ;; S:21:" phone22101459863853&# 34 ;; S:10:" 0736997385&#34 ;;}

我尝试清理数据

所以我尝试使用我的小知识并尽可能多地带走:

$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);

现在应该输出这个:

firstname25601459863853 Peter lastname77151459863853 Stormare email58511459863853 Storm@ren.com phone22101459863853 0736997385

大问题

无论如何我现在可以定位跟随名字和其他名字的随机数,而不删除电话号码? (示例电话号码是0736997385。

可能的解决方案

最佳解决方案atm由用户提交:Pei-turn。

他告诉我如何删除任何大于10位的数字。在Preg_replace()

中使用此模式
$patterns[3] = '/[0-9]{0,9}[0-9]{11,}/';

这非常有效。我唯一担心的是,由于奇怪的未来表单提交,某些数据可能会被删除。

1 个答案:

答案 0 :(得分:0)

电话号码有10位数字,尝试删除所有短于10且长于10的数字序列

[0-9] {0,9} [0-9] {11,}