我想从字符串$ str中完全删除img标记元素。这是我的代码:
<?php
$re = '@<img[^>]*?/>@siu';
$str = '<div style="position:absolute;top:10.26in;left:6.9193in;width:0.107409in;line-height:0.151711in;"><span style="font-style:normal;font-weight:normal;font-size:8pt;font-family:Avenir LT Std 55 Roman;color:#000000">1</span><span style="font-style:normal;font-weight:normal;font-size:8pt;font-family:Avenir LT Std 55 Roman;color:#000000"> </span><br/></SPAN></div>
<img style="position:absolute;top:0.880967in;left:6.85455in;width:1.09091in;height:0.363637in" src="ri_1.png" />
<img style="position:absolute;top:0.879515in;left:0.445455in;width:6.72727in;height:0.363636in" src="ci_1.png" />
<div style="position:absolute;top:0.868212in;left:0.718182in;width:2.06073in;line-height:0.333273in;"><span style="font-style:italic;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000">Abi</span><span style="font-style:italic;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000">es</span><span style="font-style:italic;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000"> </span></SPAN><br/></div>
<div style="position:absolute;top:0.868212in;left:0.718182in;width:2.06073in;line-height:0.333273in;"><DIV style="position:relative; left:0.662291in;"><span style="font-style:italic;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000">we</span><span style="font-style:italic;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000">b</span><span style="font-style:italic;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000">bi</span><span style="font-style:italic;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000">an</span><span style="font-style:italic;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000">a</span><span style="font-style:normal;font-weight:normal;font-size:18pt;font-family:Myriad Pro Light;color:#000000"> </span><br/></SPAN></DIV></div>';
$rep="//";
mb_regex_encoding("UTF-8");
mb_ereg_replace($re, $rep, $str);
echo $str;
?>
与preg_match-all()
一起使用时,相同的正则表达式和字符串将返回所有正确的匹配项。
Array
(
[0] => Array
(
[0] => <img style="position:absolute;top:0.880967in;left:6.85455in;width:1.09091in;height:0.363637in" src="ri_1.png" />
[1] => <img style="position:absolute;top:0.879515in;left:0.445455in;width:6.72727in;height:0.363636in" src="ci_1.png" />
)
)
如果匹配,为什么不进行替换?请建议一种删除img标签的方法。
答案 0 :(得分:0)
您的代码存在两个问题。查看mb_ereg_replace
mb_ereg_replace
,特别是第四个参数和返回值。
第一个问题是您在正则表达式中包含标记,其中ixmpe
不接受其正则表达式字符串中的标记。您必须通过第四个参数提供这些参数(并且它只接受mb_ereg_replace
)。
第二个问题是,你期望mb_ereg_replace
改变其论点,大多数职能都不会这样做。相反,他们会返回您期望的价值。您所要做的就是将函数的结果存储在变量中。
(另外,正如我所说,s
无法使用u
或$re = '<img[^>]*?/>';
$newStr = mb_ereg_replace($re, $rep, $str, 'i');
echo $newStr;
标记,请查看文档。)
所以:
mb_ereg_replace
编辑:我对此进行了更多研究,我可能错误地认为s
接受了哪些标记。但是你的正则表达式可以使用或不使用u
和onSelect
标志。