Allora ragazzi, sto cercando di fare una mod per un altro CMS, simile a quella di vBulletin che utilizza per trasformare i link interni al forum, con il titolo della pagina.

Allora, ho questo due funzioni:
Codice PHP:
function find_url_title($url)
{
$local_url = array(
'http://www.' . $board_config['server_name'] . $board_config['script_path'],
'http://' . $board_config['server_name'] . $board_config['script_path']
);

if (
function_exists('create_server_url'))
{
array_merge(array(create_server_url()), $local_url);
}

for(
$i = 0; $i < count($local_url); $i++)
{
if(
strlen($url) > strlen($local_url[$i]) && strpos($url, $local_url[$i]) === 0)
{
$url_local = true;
$url = $url;
}
}
if(!
$url_local)
{
if(
strpos($url, ':') === false)
{
$url_local = true;
}
}

if((
$url[2]== ']') || ($url[2]== '[') || ($url_local === false))
{
return
$url[0];
}
else
{
$url[1] = (substr($url[1], 0, 4) === 'http') ? $url[1] : 'http://' . $url[1];

if(
eregi("<title>(.+)</title>", @file_get_contents($url[1]), $matches))
{
return
'[url=' . $url[1] . ']' . $matches[1] . '[/url]' . $url[2];
}
else
{
return
'[url]' . $url[1] . '[/url]' . $url[2];
}
}
}

function
url_title($message)
{
$pattern = '#((?:https?://|www\.)(?:[\w\#\$%&~/\\-;:=,\?@\+][\w\#\$%&~/\.\\-;:=,\?@\+]*[\w\#\$%&~/\\-;:=,\?@\+]|[\w\#\$%&~/\\-;:=,\?@\+])\.[a-z]{2,6}(?:[\w\#\$%&~/\.\\-;:=,\?@\+]*))(.|$)#i';
$message = preg_replace_callback($pattern, find_url_title, $message);

return
$message;
}
Utilizzando la funzione url_title(), se scrivo il link diretto, me lo trasforma come qui su vB, giustamente, solo che me lo fa per TUTTI i link, anche quelli esterni.

Il controllo per il link interno, viene fatto grazie alla variabile $local_url.

Se il link è interno trasforma il link, altrimenti lascia il link così come è.

Esempio:
Supponiamo che il dominio, quindi un link interno sia:
Codice:
http://forum.it.altervista.org/
Se nel post, scrivo un link che abbia:
Codice:
http://forum.it.altervista.org/
questo viene trasformato con il titolo della pagina, quindi AlterVista | Spazio web gratis, hosting free php mysql.
Se scrivessi invece:
Codice:
http://www.google.it/
questo rimane tale e quale, senza trasformarlo.


Potreste aiutarmi? Avete suggerimenti per migliorare il codice?

Grazie in anticipo