使用preg_replace删除带有/某些标签的字符串

时间:2011-02-23 05:04:16

标签: php regex

我有这个字符串

$output=' i want to <a class="SForm" onclick="ShowFormComment()"><img src="http://vnexpress.net/Images/Y-kien-cua-ban.gif" border="0" style="cursor:pointer" alt="Ý kiến của bạn" /> kiss you so much';

我希望得到

' i want to kiss you so much'

所以我试过

$output =preg_replace('/<a class="SForm" class=(.*?)\Ý kiến của bạn" />/', '', $output);

但它没有用

Warning: preg_replace(): Unknown modifier '&' in /Users/datlap/Desktop/str.php on line 10

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

要使其有效,请在/之前&转义。

$output =preg_replace('/<a class="SForm" class=(.*?)\Ý kiến của bạn" \/>/', '', $output);
                                                                                       ^

您正在使用/作为正则表达式分隔符,正则表达式中有一个未转义的/被视为结束分隔符。

答案 1 :(得分:1)

你不需要为这样的东西使用正则表达式......

更简单的解决方案是使用

$output = strip_tags(htmlspecialchars_decode($output));

http://au2.php.net/manual/en/function.htmlspecialchars-decode.php

http://au2.php.net/manual/en/function.strip-tags.php