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

标签 php mysql wordpress

好吧,我知道我可以使用preg_replace从字符串中删除字母和数字。但这就是我想做的。

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

棘手的部分是,由于某种原因,正在提交的数据没有被干净地存储。 (原因是开发人员为此添加了一些紫珀,我无法弄清楚他们如何在没有未知数字和字母的情况下打印出来。)

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

  • 名字:彼得
  • 姓氏:斯托玛
  • 电子邮件:storm@ren.com
  • 电话:0736997385
<小时/>

以下是 mySQL 数据库内的数据的外观及其在网页上的打印方式:

非常困惑

a:4:{s:18:"名字25601459863853";s:5:"彼得";s:23:"lastnamn77151459863853";s:8:"Stormare";s:19:"电子邮件58511459863853";s: 13:"Storm@ren.com";s:21:"phone22101459863853";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彼得姓氏77151459863853 Stormare电子邮件58511459863853 Storm@ren.com电话22101459863853 0736997385

<小时/>

大问题

现在我是否可以定位名字和其余后面的随机数字,而无需删除电话号码? (示例电话号码为 0736997385。

<小时/>

可能的解决方案

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

他向我展示了如何删除任何大于 10 位数字的数字。在 Preg_replace() 中使用此模式

$patterns[3] = '/[0-9]{0,9}[0-9]{11,}/';

这非常有效。我唯一担心的是一些数据是否可能由于 future 奇怪的表单提交而被删除。

最佳答案

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

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

关于php - 我可以从字符串中删除随机数字和字母吗?但只保留重要的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36444475/

相关文章:

php - 使用 Ajax Php Mysql 删除行,我做错了什么?

php - 在 CodeIgniter 的 Active Record 中使用 'having'

php - RedisLab 与 WordPress 集成错误:PHP 警告:Redis::select() 期望参数 1 为整数

python - 在 MySql 中存储文本文件数据,时间戳在引号 ""中,并且有一些缺失的数据值

php - 为什么我的动态删除不起作用?

wordpress - WooCommerce - 添加对象术语无法正常工作

php 循环的 Javascript 函数

mysql - 在 Apache Phoenix API 上运行查询时出现异常

php - 如何仅获取第一个结果 mysql php - foreach 中的多个查询

mysql - 合并 2 个 SQL 查询。