好吧,我可能不会以正确的方式解决这个问题,但是这里......
我有这个字符串,它接受一个链接并在标签之间提取文本......
$string = $item;
$pattern = '/\<a([^>]*)\>([^<]*)\<\/a\>/i';
$replacement = '$2';
$message = preg_replace($pattern, $replacement, $string);
此字符串中有一些项目有&符号(在文本部分,而不是标记部分),但大多数项目没有。我试图找出一种方法,将&符号合并到当前模式中,或者在$message
上执行另一个preg_replace,以便在标记条带化后删除&符号。
谢谢!
答案 0 :(得分:7)
始终有$message = str_replace('&', '', $message);
顺便提一下,如果您尝试从html输入中删除标记,还有strip_tags
例如,如果您的输入是
$text = '<a href="google.com">Text</a>';
然后strip_tags($text)
将生成Text
。
答案 1 :(得分:2)
你想删除&符后的所有内容吗?那就是
'/\<a([^>]*)\>([^<&]*)[^<]*\<\/a\>/i';
否则,您需要进行第二次操作。
BTW:您的正则表达式还会匹配以<a
开头的其他代码,例如<author>
或<audio>
代码。