noindex_external_links.module contain mistake in regular expression — it processes all tags beginning with <a
$regexp = '/<a(.*?)\shref="([^"]+)"\s*([^>]*)>(.*?)<\/a>/is';
and spoils tags like <abbr>
and maybe <acronym>
too.
Example: source string is <abbr title="Ky">q</abbr> some text <a href="/42">about</a>
, after processing string begins with <a href="/42" bbr title="Ky">q</a>
Proposed fixing method: replace first (.*?)
with ([^>]*?)
The same in Russian:
noindex_external_links.module содержит ошибку в регулярном выражении — оно обрабатывает все тэги, начинающиеся с <a
$regexp = '/<a(.*?)\shref="([^"]+)"\s*([^>]*)>(.*?)<\/a>/is';
и портит такие тэги как <abbr>
и, возможно, <acronym>
.
Пример: строка <abbr title="Ky">q</abbr> some text <a href="/42">about</a>
после обработки модулем начинается с <a href="/42" bbr title="Ky">q</a>
Предлагаемое решение: заменить первое вхождение (.*?)
на ([^>]*?)
Comments