preg_replace除 URL 之外的每个自定义字符


preg_replace every custom chars but URLs

嗨,我正在使用WordPress,我想替换以下内容

$items = array( ".","?","!",",","؟","،",":","™","*" );

所以我编造了这个函数

function Huemix_content_filter_chars($content){
$items = array();
$items = array( ".","?","!",",","؟","،",":","™","*" );
$before='<span class="kindared">';
$after='</span>';
foreach ( $items as $k => $val ) {
    $content = preg_replace("|(''$val)|","$before$1$after",$content);
     $content = preg_replace("|(<[^>]+?)($before(''$val)$after)([^<]+?>)|","$1$3$4",$content);
}
return $content;
}
add_filter('the_content', 'Huemix_content_filter_chars');

我不明白出了什么问题!它正在工作,但不完全是它打破了这个链接

<a href="http://facebook.com/huemix.ly">Huemix Studio, Inc™</a>

它是这样打印的

<a href="http&lt;span class=" kindared"="">://facebook<span class="kindared">.</span>com/huemix<span class="kindared">.</span>ly"&gt;Huemix Studio<span class="kindared">,</span> Inc<span class="kindared">™</span></a>

但它不会破坏第二个链接

    Follow Us On Facebook <a href="http://facebook.com/huemix.ly">Huemix Studio, Inc™</a>
Follow Us On Twitter <a href="http://twitter.com/HuemixStudio">Huemix Studio, Inc™</a>

你可以在这里在线看到我的问题

它正在制动我的帖子图像,这是我的 HTML 帖子图像的输出

<div class="huemix-works "><img class='huemix-works-image' alt='Huemix Studio Works' src='http://alpha.huemix.ly/wp-content/uploads/Huemix_temp/NASER-GROUP1-698998_140x94.png' /><span class='huemix-works-overlay'></span><a class="huemix-works-zoom-icon huemix-fancybox" title="Huemix Studio Works" href="http://alpha.huemix.ly/wp-content/uploads/2013/11/NASER-GROUP1.png" rel="media">Zoom In</a></div>

请在这里和这里在线查看我的问题,这是我的演示网站请看它破坏了一些东西,但另一件事工作正常!请帮忙!

为什么不直接使用str_replace?

$items = array( ".","?","!",",","؟","،",":","™","*" );
$content = str_replace($items, '', $content);