我最近使用了一种模式,通过成对的打开/关闭双引号替换直双引号。
$string = preg_replace('/(\")([^\"]+)(\")/','“$2”',$string);
当 $string 是一个句子,甚至是一个段落时,它工作得很好。
但是……</p>
我的函数可以被调用来处理一大段 HTML 代码,但它不再像例外一样工作:
$string = preg_replace('/(\")([^\"]+)(\")/','“$2”','<a href="page.html">Something "with" quotes</a>');
返回
<a href=“page.html”>Something “with” quotes</a>
这是一个问题……
所以我想我可以分两次完成:提取标签中的文本,然后替换引号。
我试过这个
$pattern='/<[^>]+>(.*)<\/[^>]+>/';
例如,如果字符串是
$string='<a href="page.html">Something "with" quotes</a>';
但它不适用于以下字符串:
$string='Something "with" quotes <a href="page.html">Something "with" quotes</a>';
任何想法?
伯特兰