Я использую старую Joomla! Плагин (я знаю, первая ошибка). Это делает некоторую замену URL через регулярное выражение. Вот код:
$row->text = preg_replace_callback('@href=("|\')(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)("|\')@', 'replace_links', $row->text);
Проблема в том, что он разрывается с URL-адресами, в которых есть дефис. Любая помощь в том, как я могу изменить его, чтобы он мог воспринимать дефисы, была бы полезна.
Это также может быть функция replace_links
, которая прерывается:
function replace_links($matches) {
$match = $matches[0];
$array = array('href=',"'", '"');
$match = str_replace($array, '',$match);
if (strpos($match, JURI::root())) {
return $matches[0];
} else {
$plugin =& JPluginHelper::getPlugin('content', 'linkdisclaimer');
$pluginParams = new JParameter( $plugin->params );
$id = $pluginParams->get('disclaimerPage');
$match = "href=\"javascript:linkDisclaimer('".rawurlencode($match)."', '".$id."');\"";
return $match;
}
}