Nu forsøgte jeg følgende:
function convert_text ($text) {
$string_array = explode(" ", $text); // Deler $text i et array for hvert mellemrum i teksten.
$match_array = preg_grep("((ftp|http|https|telnet|news|nntp|file|irc):\/\/[^\\s]+)", $string_array); //Søger på "pattern" i $string_array. Alle fundne "matches" smides ind i $match_array.
$match_array = array_values($match_array); //Sætter indexværdier i $match_array til "normal" værdi.
$array_size = count($match_array); //Antallet af "entries" i $match_array.
$counter = 0;
if ($array_size > 0) //Tester om $array_size indeholder værdier.
{
while ($counter < $array_size) //Kører så længe $counter er mindre end $array_size.
{
if (preg_match("(((ftp|http|https|telnet|news|nntp|file|irc):\/\/[^\\s]+\\.(png|jpg|jpeg|gif))/i)", $match_array[$counter]))
{
$replacement_text = "<a href=\"$match_array[$counter]\" target=\"_blank\"><img src=\"
http://$match_array[$counter]\" width=\"300\" height=\"175\"></a>";
$text = str_replace($match_array[$counter], $replacement_text, $text);
}
else
{
$match_array[$counter] = rtrim($match_array[$counter], '.');
$replacement_text = "<a href=\"$match_array[$counter]\" target=\"_blank\">$match_array[$counter]</a>";
$text = str_replace($match_array[$counter], $replacement_text, $text);
}
$counter++;
}
}
return $text;
}
print convert_text("[fr]Tekst[/f]
http://www.fmground.dk. http://www.fmground.dk. Lidt sære tegn: &%¤#[
http://www.martinhjort.net/fmg/Darwen/MarkSherlock.PNG http://www.martinhjort.net/fmg/Darwen/MarkSherlock.PNGæ");
===================================
Problemet er så at outputtet i kildekode ser således ud:
[fr]Tekst[/f] <a href="<a href="
http://www.fmground.dk target="_blank">
http://www.fmground.dk</a>" target="_blank"><a href="
http://www.fmground.dk" target="_blank">
http://www.fmground.dk</a></a>. <a href="<a href="
http://www.fmground.dk target="_blank">
http://www.fmground.dk</a>" target="_blank"><a href="
http://www.fmground.dk" target="_blank">
http://www.fmground.dk</a></a>. Lidt sære tegn: &%¤#[ <a href="
http://www.martinhjort.net/fmg/Darwen/MarkSherlock.PNG" target="_blank">
http://www.martinhjort.net/fmg/Darwen/MarkSherlock.PNG</a> <a href="
http://www.martinhjort.net/fmg/Darwen/MarkSherlock.PNG" target="_blank">
http://www.martinhjort.net/fmg/Darwen/MarkSherlock.PNG</a>æ===========================
Den gør altså for det første ikke billedlinks til klikbare billeder, samtidigt med, at den åbenbart laver de almindelige links dobbelt...