protected static function _changeExternalLinks(&$content) { if (empty($content)) { return; } $dom = new Zend_Dom_Query(); $dom->setDocumentHtml($content, 'utf-8'); if ($dom->getDocumentErrors()) { return; } $query = $dom->query('.externalLink'); if (!$query->count()) { return; } $links = array(); /** @var DOMElement $a */ foreach ($query as $a) { $link = $a->getAttribute('href'); if (empty($link)) { continue; } $links[] = $link; GFNLinkProxy_Api::preload($link); } foreach ($links as $link) { $content = preg_replace_callback('#(<a[^>]+href=("|\')?)(' . preg_quote($link, '#') . ')(("|\')?[^>]+class=("|\')?[^"\']*externalLink[^"\']*("|\')?[^>]*>)#sU', array(__CLASS__, '_replace'), $content, 1); } }