Frågan#1
Hejsan!
Jag behärskar helt enkelt inte reguljära uttryck och skulle därför bli väldigt glad om någon kunde snygga till nedanstånde funktion. Funktionen tar ut länkar ur en sträng och och visar max 30 tecken i länken alltså typ
?id=1212332&lang=svenska&hash=233423545342452345
blir bara
<a href="?id=1212332&lang=svenska&hash=233423545342452345">?id=1212332&lang=sven...</a>
Så här ser funktionen ut i dagsläget
function gethtml($text)
{
$pattern = '/www\.[\w\.\\:\\?\\~\\=\\&\-_\/]+/i';
$pattern2 = '/http:\/\/[\w\.\\:\\?\\~\\=\\&\-_\/]+/i';
preg_match_all($pattern, $text, $matches, PREG_PATTERN_ORDER);
preg_match_all($pattern2, $text, $matches_sec, PREG_PATTERN_ORDER);
foreach($matches_sec[0] as $p) {
$n = str_replace('http://','',$p);
if(strlen($n) > 30) {$end = substr($n,0,30).'...';}
else {$end = $n;}
if($memory[$n] != 1)
{
$memory[$n] = 1;
$text = str_replace($p,"<a href=\"$p\" onclick=\"return OrdWin(this.href, '".rand(1,1000)."')\">$end</a>",$text);
}
}
foreach($matches[0] as $p) {
if(strlen($p) > 30) {$end = substr($p,0,30).'...';}
else {$end = $p;}
if($memory[$p] != 1)
{
$memory[$p] = 1;
$text = str_replace($p,"<a href=\"http://$p\" onclick=\"return OrdWin(this.href, '".rand(1,1000)."')\">$end</a>",$text);
}
}
$text = preg_replace("/([\w\.\-_]+)(@)([\w\.\-_]+)/i", "<a href=\"mailto:$0\"><u>$0</u></a>",$text);
return nl2br($text);
}
All hjälp uppskattas!