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 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &nbsp;13127003432. &nbsp; &nbsp; 或者是拨打全国免费热线 &nbsp;400-0212-340. 也可以在这里直接和老师对话 &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;nbsp;13127003432. &amp;nbsp; &amp;nbsp; 或者是拨打全国免费热线 &amp;nbsp;400-0212-340. 也可以在这里直接和老师对话 &amp;nbsp;。有关于学习的问题就直接问就可以了。" /></msg>
[1] => <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;。有关于学习的问题就直接问就可以了。" />
)
我要截取的内容:<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;。有关于学习的问题就直接问就可以了。" />
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>