您的位置:首页 > 编程语言 > PHP开发

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

2017-02-28 17:27 411 查看
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;。有关于学习的问题就直接问就可以了。"    />

替换后的内容为: <msg><font n="宋体" s="10" b="0" i="0" ul="0" c="0" cs="134"/><text c="王经理:****** 李经理:****** 身份证: ****** 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &amp;nbsp;******. &amp;nbsp; &amp;nbsp; 或者是拨打全国免费热线 &amp;nbsp;******. 也可以在这里直接和老师对话 &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> 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  脚本 php