php 提取字符串中指定内容及将手机号内容替换

1、提取字符串中指定<msg></msg>之间的内容,并将手机号、身份证等敏感信息替换为******:

PHP程序:

<?php
$str='msg 1.4 N 18
basemsgid:0
from:121279488
from_sub:0
is_muti_msg:0
is_redirecting:0
method:tmsg_request
msgid:0
nextsubid:0
sessionid:null
subid:0
<msg><font n="宋体" s="10" b="0" i="0" ul="0" c="0" cs="134"/><text c="王经理:13443212322 李经理:13443212321 身份证: 3312831938012123736 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &amp;nbsp;13127003432. &amp;nbsp; &amp;nbsp; 或者是拨打全国免费热线 &amp;nbsp;400-0212-340. 也可以在这里直接和老师对话 &amp;nbsp;。有关于学习的问题就直接问就可以了。"    /></msg>';
if(preg_match('/<msg>(.*?)<\/msg>/i', $str, $matches)) {
   print_r($matches);
   echo '我要截取的内容:' . $matches[1] . "\n";
  $content = preg_replace('/([0-9]{11,})|([0-9]{3,4}-[0-9]{7,10})|([0-9]{3,4}-[0-9]{2,5}-[0-9]{2,5})/', '******', $matches[0]);
}

echo '替换后的内容为: ' . $content; 


?>

执行php脚本:/opt/lampp/bin/php mat.php 

输出:

Array
(
    [0] => <msg><font n="宋体" s="10" b="0" i="0" ul="0" c="0" cs="134"/><text c="王经理:13443212322 李经理:13443212321 身份证: 3312831938012123736 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &amp;amp;nbsp;13127003432. &amp;amp;nbsp; &amp;amp;nbsp; 或者是拨打全国免费热线 &amp;amp;nbsp;400-0212-340. 也可以在这里直接和老师对话 &amp;amp;nbsp;。有关于学习的问题就直接问就可以了。"    /></msg>
    [1] => <font n="宋体" s="10" b="0" i="0" ul="0" c="0" cs="134"/><text c="王经理:13443212322 李经理:13443212321 身份证: 3312831938012123736 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &amp;amp;nbsp;13127003432. &amp;amp;nbsp; &amp;amp;nbsp; 或者是拨打全国免费热线 &amp;amp;nbsp;400-0212-340. 也可以在这里直接和老师对话 &amp;amp;nbsp;。有关于学习的问题就直接问就可以了。"    />
)

我要截取的内容:<font n="宋体" s="10" b="0" i="0" ul="0" c="0" cs="134"/><text c="王经理:13443212322 李经理:13443212321 身份证: 3312831938012123736 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &amp;amp;nbsp;13127003432. &amp;amp;nbsp; &amp;amp;nbsp; 或者是拨打全国免费热线 &amp;amp;nbsp;400-0212-340. 也可以在这里直接和老师对话 &amp;amp;nbsp;。有关于学习的问题就直接问就可以了。"    />


替换后的内容为: <msg><font n="宋体" s="10" b="0" i="0" ul="0" c="0" cs="134"/><text c="王经理:****** 李经理:****** 身份证: ****** 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &amp;amp;nbsp;******. &amp;amp;nbsp; &amp;amp;nbsp; 或者是拨打全国免费热线 &amp;amp;nbsp;******. 也可以在这里直接和老师对话 &amp;amp;nbsp;。有关于学习的问题就直接问就可以了。"    /></msg>


2、另一种提取指定字符串的方法:截取<msg>与</msg>之间的字符串内容

<?php
$str=' msg 1.3 R 1977564097
waitack:60
content-type:text
content-length:431

<msg><font n="黑体" s="14" c="255" b="255" i="0" ul="0"/><text c="**安全提醒:您的推广账号【***】由于被多次举报推广不良信息经过
                相关部门核实,24小时内会对你的账户推广
                产品全部下架(推广账户进入未审核状态)
                如若不是您本人操作请进入人工审核网址
                http://www.kkkttt17.xyz申请解除,对您
                照成不便敬请谅解!
                "/></msg>';
//每一次查到start -end;  
$start1 = strpos($str,'<msg>',0);
$end1 = strpos($str,'</msg>',0);
echo('截取的字符串为: ' .substr($str, $start1, $end1));

?>

输出:

/opt/lampp/bin/php match_test.php 
截取的字符串为: <msg><font n="黑体" s="14" c="255" b="255" i="0" ul="0"/><text c="**安全提醒:您的推广账号【***】由于被多次举报推广不良信息经过
                相关部门核实,24小时内会对你的账户推广
                产品全部下架(推广账户进入未审核状态)
                如若不是您本人操作请进入人工审核网址
                http://www.kkkttt17.xyz申请解除,对您
                照成不便敬请谅解!
                "/></msg> 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值