2012-04-16 84 views
1

寻找最佳解决方案,以便如何用带引号的引号代替文本块中的普通引号,但不能更改在html标记标记中找到的引号< ... >我已经尝试使用预浸替换,如:PHP:在字符串中替换双引号,但不是HTML标签中的双引号

$pattern = '/(?<!=)"\b/'; 
$lyrics = preg_replace($pattern, "\u201c", $lyrics); 
$pattern = '/\b"(?!>)/'; 
$lyrics = preg_replace($pattern, "\u201d", $lyrics); 
$pattern = '/\."/'; // find regular quotes after a period 
$lyrics = preg_replace($pattern, ".\u201d", $lyrics); 
$pattern = '/\!"/'; // find regular quotes after an exclamation 
$lyrics = preg_replace($pattern, "!\u201d", $lyrics); 
$pattern = '/"\s/'; // find regular quotes before a space 
$lyrics = preg_replace($pattern, "\u201d ", $lyrics); 

例如,如果我有以下:

<a href="http://somelink.com">"This is a quotation." 

我希望它最终成为:

<a href="http://somelink.com">“This is a quotation.” 

回答