webForumDet fria alternativet

Auto-länka adresser

6 svar · 350 visningar · startad av greyhound

greyhoundMedlem sedan maj 20031 472 inlägg
#1

Hej

Jag har försökt fixa så webbadresser i en text ska bli länkar när man skriver ut den.
Jag har sökt här på forumet och försökt med lite som andra säger funkar.
Så om någon kan hjälpa mig skulle jag bli glad.

stiglennartMedlem sedan mars 20048 inlägg
#2

Det smidigaste är att använda reguljära uttryck (regular expressions). Prova att söka på det. Är säker på att det finns en uppsjö med färdiga skript att använda.

greyhoundMedlem sedan maj 20031 472 inlägg
#3

stiglennart skrev:

Det smidigaste är att använda reguljära uttryck (regular expressions). Prova att söka på det. Är säker på att det finns en uppsjö med färdiga skript att använda.

Oj glömde skriva det. Men det är med preg_replace som jag har försökt så jag har redan kollar på dom. Men dom funkar inte för mig det är det som är problemet.

GunnarDMedlem sedan juni 20014 290 inlägg
#4

Prova detta,

function linksAndHTMLEntities($str){
  preg_match_all ("|[url]http://[/url][^>\s\"\']+|is", $str, $match);
  $urls = array_unique($match[0]);
  $str = niceHTMLEntities($str);
  foreach($urls as $url){
    $tmp = htmlentities($url);
    $str = str_replace($tmp, "<a href='$tmp' target='_blank'>$tmp</a>", $str);
  }
  return $str;
}
aasahMedlem sedan mars 20034 471 inlägg
#5

GunnarD skrev:

...

  $str = niceHTMLEntities($str);
...

Vad gör denna funktion? :q

PeddaMedlem sedan juni 20006 032 inlägg
#6

Denna kod brukar jag använda

$text = preg_replace( '/(?<!"|href=|href\\s=\\s|href=\\s|href\\s=)(http|ftp|https):\\/\\/[\\w]+(.[\\w]+)([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?/i', "<a href=\"$0\" title=\"$0\" target=\"_blank\">$0</a>", $text );
$text = preg_replace('/(?<!"|href=|href\\s=\\s|href=\\s|href\\s=)(?<!:\\/\\/)www(.[\\w]+)([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?/i', "<a href=\"http://$0\" title=\"http://$0\" target=\"_blank\">$0</a>", $text );
greyhoundMedlem sedan maj 20031 472 inlägg
#7

Pedda skrev:

Denna kod brukar jag använda

$text = preg_replace( '/(?<!"|href=|href\\s=\\s|href=\\s|href\\s=)(http|ftp|https):\\/\\/[\\w]+(.[\\w]+)([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?/i', "<a href=\"$0\" title=\"$0\" target=\"_blank\">$0</a>", $text );
$text = preg_replace('/(?<!"|href=|href\\s=\\s|href=\\s|href\\s=)(?<!:\\/\\/)www(.[\\w]+)([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?/i', "<a href=\"http://$0\" title=\"http://$0\" target=\"_blank\">$0</a>", $text );

Den där funkade!!
Tackar

136 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)