moin!
mit hilfe von wahsaga's tip (und google) hab ich mir jetzt was zusammengebastelt:
function url2link($str)
{
$str = ' '.$str;
$str = preg_replace_callback("#(^|[\n ])([\w]+?://.*?[^ "\n\r\t<]*)#is", "getShortString", $str);
$str = preg_replace_callback("#(^|[\n ])((www|ftp).[\w-]+.[\w-.~]+(?:/[^ "\t\n\r<]*)?)#is", "getShortString", $str);
$str = substr($str, 1);
return $str;
}
function getShortString($str)
{
$laenge = 40;
$url = str_replace("http://", "", $str[2]);
if (strlen($str[2]) > $laenge)
{
$str[2] = substr($str[2], 0, ($laenge/2)) . "..." . substr($str[2], - ($laenge-3-$laenge/2));
}
return $str[1]."<a href="http://".$url."" target="_blank">".$str[2]."</a>";
}
das funktioniert auch schon recht gut. dazu hab ich aber noch 2 fragen:
1. ich kapiere nach wie vor die syntax nicht ("#(^|[\n ])([\w]+?://.*?[^ "\n\r\t<]*)#is". kann mir einer erklären, was die macht?
2. ich würde gern einen zweiten (oder vielleicht sogar dritten) parameter mit angeben, um flexibel zu sein. so kann man mit diesem zum beispiel die länge beeinflussen. wie kann man das machen? hab im manual nichts gefunden.
gruß.
roger.