php 正则匹配img标签中的自定义属性值
将原始的字符串 正则匹配替换成指定的字符串类型
如以下的字符串:
$str="<p>张三去吃饭喝酒</p><p><img src=\"/Uploads/temp/251602455277.png\" data-id=\"2458\" data-path=\"/temp/251602455277.png\"></p><p>332iojdfiojfvijfvi</p><p><br></p><p><img src=\"/Uploads/temp/251602456643.png\" data-id=\"2457\" data-path=\"/temp/251602456643.png\"></p><p>好的好的收到收到会不会不舍得好久不见表达式</p><p><br></p><p><img src=\".com/Uploads/temp/251602456643.png\" data-id=\"2457\" data-path=\"/temp/251602456643.png\"></p><p><br></p><img data-id=\"2456\" data-path=\"/temp/251602453547.png\" src=\"/Uploads/temp/251602453547.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=\"/Uploads/temp/251602455277.png\" data-id=\"2458\" data-path=\"/temp/251602455277.png\"></p><p>332iojdfiojfvijfvi</p><p><br></p><p><img src=\"/Uploads/temp/251602456643.png\" data-id=\"2457\" data-path=\"/temp/251602456643.png\"></p><p>好的好的收到收到会不会不舍得好久不见表达式</p><p><br></p><p><img src=\"/Uploads/temp/251602456643.png\" data-id=\"2457\" data-path=\"/temp/251602456643.png\"></p><p><br></p><img data-id=\"2456\" data-path=\"/temp/251602453547.png\" src=\"/Uploads/temp/251602453547.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/251602455277.png[/IMG]</p><p>332iojdfiojfvijfvi</p><p><br></p><p>[IMG]2457,/temp/251602456643.png[/IMG]</p><p>好的好的收到收到会不会不舍得好久不见表达式</p><p><br></p><p>[IMG]2457,/temp/251602456643.png[/IMG]</p><p><br></p>[IMG]2456,/temp/251602453547.png[/IMG]
使用到的技术有
php函数 preg_replace()使用 正则表达式的使用