php 正则匹配img标签中的自定义属性值

php 正则匹配img标签中的自定义属性值

将原始的字符串 正则匹配替换成指定的字符串类型

如以下的字符串:

 $str="<p>张三去吃饭喝酒</p><p><img src=\"https://www.baidu.com/Uploads/temp/2202151602455277.png\" data-id=\"2458\" data-path=\"/temp/2202151602455277.png\"></p><p>332iojdfiojfvijfvi</p><p><br></p><p><img src=\"https://www.baidu.com/Uploads/temp/2202151602456643.png\" data-id=\"2457\" data-path=\"/temp/2202151602456643.png\"></p><p>好的好的收到收到会不会不舍得好久不见表达式</p><p><br></p><p><img src=\"https://www.baidu.com.com/Uploads/temp/2202151602456643.png\" data-id=\"2457\" data-path=\"/temp/2202151602456643.png\"></p><p><br></p><img  data-id=\"2456\" data-path=\"/temp/2202151602453547.png\"  src=\"https://www.baidu.com/Uploads/temp/2202151602453547.png\" />";

将所有的img标签中的内容替换成 [IMG] data-id的值,data-path的值 [/IMG] 这种格式的值

需要使用到的php函数是

preg_replace() 函数执行一个正则表达式的搜索和替换。 语法
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int KaTeX parse error: Expected 'EOF', got '&' at position 19: …it = -1 [, int &̲count ]] ) 搜索 subject 中匹配

pattern 的部分, 以 replacement 进行替换。

参数说明:
$pattern: 要搜索的模式,可以是字符串或一个字符串数组。
$replacement: 用于替换的字符串或字符串数组。
$subject: 要搜索替换的目标字符串或字符串数组。 $limit: 可选,对于每个模式用于每个 subject
字符串的最大可替换次数。 默认是-1(无限制)。 $count: 可选,为替换执行的次数。

使用案例:
将 google 替换为 runoob

 <?php 
> $string = 'google 123, 456';
> $pattern = '/(\w+) (\d+),
> (\d+)/i'; 
> $replacement = 'runoob ${2},$3'; 
> echo preg_replace($pattern,
>结果是 $replacement, $string); 
>?>

具体操作的代码:
//原始字符串

$str="<p>张三去吃饭喝酒</p><p><img src=\"https://www.baidu.com/Uploads/temp/2202151602455277.png\" data-id=\"2458\" data-path=\"/temp/2202151602455277.png\"></p><p>332iojdfiojfvijfvi</p><p><br></p><p><img src=\"https://www.baidu.com/Uploads/temp/2202151602456643.png\" data-id=\"2457\" data-path=\"/temp/2202151602456643.png\"></p><p>好的好的收到收到会不会不舍得好久不见表达式</p><p><br></p><p><img src=\"https://www.baidu.com/Uploads/temp/2202151602456643.png\" data-id=\"2457\" data-path=\"/temp/2202151602456643.png\"></p><p><br></p><img  data-id=\"2456\" data-path=\"/temp/2202151602453547.png\"  src=\"https://www.baidu.com/Uploads/temp/2202151602453547.png\" />";

 $preg = '/<img.*?data-id=[\'|\"](.*?)[\'|\"].*?data-path=[\'|\"](.*?)[\'|\"].*?[\/]?>/';   // 匹配的正则表达式
$str=preg_replace($preg, '[IMG]$1,$2[/IMG]',$str);
 var_dump($content);

结果是
<p>张三去吃饭喝酒</p><p>[IMG]2458,/temp/2202151602455277.png[/IMG]</p><p>332iojdfiojfvijfvi</p><p><br></p><p>[IMG]2457,/temp/2202151602456643.png[/IMG]</p><p>好的好的收到收到会不会不舍得好久不见表达式</p><p><br></p><p>[IMG]2457,/temp/2202151602456643.png[/IMG]</p><p><br></p>[IMG]2456,/temp/2202151602453547.png[/IMG]

使用到的技术有
php函数 preg_replace()使用
正则表达式的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值