webForumDet fria alternativet

Autolänk

8 svar · 332 visningar · startad av Jesper2

Jesper2Medlem sedan dec. 200475 inlägg
#1

Hur gör jag för att ordna detta:
Om användaren skriver !Jesper! så ändras texten i inlägget till

<b><a class="sida" href="member.php?user=Jesper">Jesper</a></b>

helt automatiskt?

Tex:
"Idag träffade jag !Jesper!."
Blir:
"Idag träffade jag <b><a class="sida" href="member.php?user=Jesper">Jesper</a>"

Jag tillåter inte HTML i min gästbok, därför kan användarna inte länka själva.

Tack på förhand!
MVH,
Jesper Ahlin

aasahMedlem sedan mars 20034 471 inlägg
#2

Re: Autolänk

Egentligen behöver du en felkoll också för annars kommer ett inlägg som:

inlägg i din gästbok skrivs som skrev:

Anna älskar Kalle!?!

att bli

inlägg i din gästbok resultat skrev:

Anna älskar Kalle <b><a class="sida" href="member.php?user=?">?</a></b>

Det är väl inte HELA texten i inlägget som ska ändras, utan bara den text som står inom '!'? Eller?

Jesper2Medlem sedan dec. 200475 inlägg
#3

Ja en felkoll vore också fint.
Jepp, du har förstått allting helt rätt, men jag har inte en aning om hur jag ska gå tillväga..!

project2501xMedlem sedan jan. 20059 inlägg
#4

Det bästa är nog att inte använda sig av utropstecken överhuvudtaget, använd sol-tecknet (eller vad det kallas) istället.

Färdig funktion:

<?php
function autolink($text){
 $text = eregi_replace("¤([^*]*)¤", "<b><a class=\"sida\" href=\"member.php?user=\\\\1\">\\\\1</a></b>", $text);
 return $text;
}

echo autolink("Idag träffade jag ¤Jesper¤.");
?>

Vassego!

Jesper2Medlem sedan dec. 200475 inlägg
#5

tackar tackar! lite instabilt dock, om man ska använda det flera gånger i samma text så fuckar det rejält ;P finns det nån lösning..?

jawbreakerMedlem sedan jan. 2003296 inlägg
#6
<?php

function autolink($text){
 $text = eregi_replace("¤([^¤]+)¤", "<b><a class=\"sida\" href=\"member.php?user=\\1\">\\1</a></b>", $text);
 return $text;
}

echo autolink("Idag träffade jag ¤Jesper¤, ¤Kalle¤ och ¤Pelle¤.");
?>
Jesper2Medlem sedan dec. 200475 inlägg
#7

jawbreaker skrev:

<?php

function autolink($text){
 $text = eregi_replace("¤([^¤]+)¤", "<b><a class=\"sida\" href=\"member.php?user=\\1\">\\1</a></b>", $text);
 return $text;
}

echo autolink("Idag träffade jag ¤Jesper¤, ¤Kalle¤ och ¤Pelle¤.");
?>

Det gör ingen skillnad tyvärr. Alla de olika namnen blir länkade till person #1 i inlägget.

aasahMedlem sedan mars 20034 471 inlägg
#8

Hmm, jag tror visserligen att din idé går att lösa, men ett alternativ är att inte ha samma markering för start och stopp på länken. Låt säga att du låter:

[! innebära början på urlen och /] slutet (eller vilken som helst udda teckenföljd som troligen inte förekommer i normala fall.) Då kan du åstadkomma det du vill med string_replace.

Jesper2Medlem sedan dec. 200475 inlägg
#9

hmm.. det har du rätt i..! det ska jag lägga på minnet.
än en gång har aasah räddat mig, haha ;D

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