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 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 13127003432. 或者是拨打全国免费热线 400-0212-340. 也可以在这里直接和老师对话 。有关于学习的问题就直接问就可以了。" /></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 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &nbsp;13127003432. &nbsp; &nbsp; 或者是拨打全国免费热线 &nbsp;400-0212-340.
也可以在这里直接和老师对话 &nbsp;。有关于学习的问题就直接问就可以了。" /></msg>
[1] => <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;。有关于学习的问题就直接问就可以了。" />
)
我要截取的内容:<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><font n="宋体" s="10" b="0" i="0" ul="0" c="0" cs="134"/><text c="王经理:****** 李经理:****** 身份证: ****** 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &nbsp;******. &nbsp; &nbsp; 或者是拨打全国免费热线 &nbsp;******. 也可以在这里直接和老师对话 &nbsp;。有关于学习的问题就直接问就可以了。"
/></msg>
2、另一种提取指定字符串的方法:截取<msg>与</msg>之间的字符串内容
输出:
/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程序:
<?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 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 13127003432. 或者是拨打全国免费热线 400-0212-340. 也可以在这里直接和老师对话 。有关于学习的问题就直接问就可以了。" /></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 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &nbsp;13127003432. &nbsp; &nbsp; 或者是拨打全国免费热线 &nbsp;400-0212-340.
也可以在这里直接和老师对话 &nbsp;。有关于学习的问题就直接问就可以了。" /></msg>
[1] => <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;。有关于学习的问题就直接问就可以了。" />
)
我要截取的内容:<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><font n="宋体" s="10" b="0" i="0" ul="0" c="0" cs="134"/><text c="王经理:****** 李经理:****** 身份证: ****** 欢迎您来化妆美容美发学校咨询,我是在线客服老师!请加我的微信 &nbsp;******. &nbsp; &nbsp; 或者是拨打全国免费热线 &nbsp;******. 也可以在这里直接和老师对话 &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 preg_replace函数 替换字符串或者数组内多个内容
- shell提取字符串指定的内容
- php替换文件指定行的内容
- php输入内容的字符串替换程序
- linux替换文件指定字符串前面的内容
- PHP开发小技巧①⑥—提取富文本字符串中的文本内容
- php 修改文件内容,替换指定内容
- php正则指定字符串内容preg_match函数之说明
- mysql将字符串替换为指定内容
- php 批量更新某字段内容的部分内容 replace(要替换的字段,'被替换的字符串,'替换成的字符串')
- awk实现替换字符串中指定位置之间的内容
- PHP提取字符串中的手机号正则表达式怎么写
- PHP正则提取或替换img标记属性内容
- Linux字符串替换一例:根据IP地址获取指定内容
- 字符串的替换(直接替换你想要替换的字符串内容)/删除(删除指定位置/删除你要要删除的位置)/
- php 正则替换 字符串中指定的字符串
- java判断字符串中某字符出现的位置,并替换指定指定内容
- PHP截取指定长度的字符串,超出部分用 ..替换
- 将一个字符串中的空格替换为指定的内容――4
- 用指定字符串替换指定内容