2011-01-27 197 views
1

PHP:我该如何替换替换为“”的HTML标签?PHP:如何将html标签替换为“”?

用下面的代码:

$str = 'line1<div>line2</div>line3'; 
echo strip_tags($str); 

我得到

line1line2line3 

但预期的结果是

line1 line2 line3 

感谢

回答

7

$result = preg_replace('/<.+>/U', ' ', $str);

+2

替换`”“`,一个单一的空间。如果OP想要保留`<>``,你可能想要使用`+`量词而不是`*`量词。 – BoltClock 2011-01-27 14:12:08

+0

根据评论+问题修订修改了regexp。谢谢:) – Merijn 2011-01-27 14:14:37

1
$rxtags = ' 
<(?: 
    (?: (?: (?:script|style) \s* | (?:script|style) \s+ (?:".*?"|\'.*?\'|[^>]*?)+\s*) > .*? </(?:script|style)\s*) 
    | (?: /?\w+\s*/? | \w+\s+ (?:".*?"|\'.*?\'|[^>]*?)+\s*/? | !(?:DOCTYPE.*?|--.*?--)) 
)> 
'; 

$html = 'line1<div>line2</div>line3'; 
$html =~ s/$rxtags/ /xsg; 
print $html,"\n"; 

输出:line1 line2 line3