
10-26-2005, 07:06 AM
|
|
|
Join Date: Jan 2005
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
|
Quote:
Originally Posted by Computer_Angel
This is my solution for ver 1.04:
PHP Code:
if ($post['pagetext'])
{
if (preg_match_all("/(\[URL=\")(.[^\"\]]*)/i", $post['pagetext'], $matches))
{
$localdomains = ($vbulletin->options['mh_anolink_localaddresses'] ? explode(" ", $vbulletin->options['mh_anolink_localaddresses']) : ($vbulletin->options['cookiedomain'] ? array($vbulletin->options['cookiedomain']) : array($_SERVER['SERVER_NAME'])));
$preg_search = array();
$preg_replace = array();
foreach ($matches[2] AS $key=>$serverurl)
{
// Do we have a local url?
$parsed_url = parse_url($serverurl);
$servername = $parsed_url['host'];
foreach ($localdomains AS $localdomain)
{
if (substr($localdomain, 0, 1) == ".")
{
if (preg_match("/$localdomain$/i", $servername))
{
continue 2;
}
}
else
{
if ($localdomain == $servername)
{
continue 2;
}
}
}
$anonymurl = $vbulletin->options['mh_anolink_anonymizer'] . $serverurl;
//$preg_search["$servername"] = "[URL=\"$serverurl";
$preg_search["$servername"] = $matches[0]["$key"];
//$preg_replace["$servername"] = "[URL=\"" . $anonymurl;
$preg_replace["$servername"] = $matches[1]["$key"].$anonymurl;
if ($preg_search)
{
$post['pagetext'] = str_replace($preg_search, $preg_replace, $post['pagetext']);
}
}
}
//[URL]link[/URL]
if (preg_match_all("/(\[URL)(])(.[^\]]*)/i", $post['pagetext'], $matches))
{
$localdomains = ($vbulletin->options['mh_anolink_localaddresses'] ? explode(" ", $vbulletin->options['mh_anolink_localaddresses']) : ($vbulletin->options['cookiedomain'] ? array($vbulletin->options['cookiedomain']) : array($_SERVER['SERVER_NAME'])));
$preg_search = array();
$preg_replace = array();
foreach ($matches[3] AS $key=>$serverurl)
{
// Do we have a local url?
$parsed_url = parse_url($serverurl);
$servername = $parsed_url['host'];
foreach ($localdomains AS $localdomain)
{
if (substr($localdomain, 0, 1) == ".")
{
if (preg_match("/$localdomain$/i", $servername))
{
continue 2;
}
}
else
{
if ($localdomain == $servername)
{
continue 2;
}
}
}
$anonymurl = $vbulletin->options['mh_anolink_anonymizer'] . substr($serverurl,0,strlen($serverurl)-5);
$preg_search["$servername"] = $matches[0]["$key"];
$preg_replace["$servername"] = $matches[1]["$key"]."=\"".$anonymurl."\"".$matches[2]["$key"].$serverurl;
if ($preg_search)
{
$post['pagetext'] = str_replace($preg_search, $preg_replace, $post['pagetext']);
}
}
}
}
|
perfect, works fine, with all kinds of links.
@Marco: maybe make this the official one, until youu find more time.
thanks guys!
take care
Flint Stelter
http://www.ddas.de
|