Pagina 1 van 1

link herkennen en kunnen gebruiken

Geplaatst: 05 jul 2005, 10:33
door dano
Weet iemand een functie hoe ik in tekstberichten automatisch een link kan herkennen en wanneer de berichten worden weergegeven dat deze links ook gebruikt kunnen worden door erop te klikken. (ivm php gastenboekje). Dus dat als iemand intoetst http://www.nu.nl dat deze link dan ook werkend tussen de tekst verschijnt. Edit: Precies zoals hier in dit bericht

Geplaatst: 05 jul 2005, 13:54
door Stef
Dano; dit heeft niks met phpBB te maken.

Verder zit het toch al in het gastenboek?

Geplaatst: 05 jul 2005, 14:43
door DoubleJ
open bbcode.php
die zit in de includes map.
ergens in dat bestand zit een functie die heet: makeclickable
die zorgt ervoor dat alles wat op een link lijkt klikbaar wordt.

Geplaatst: 05 jul 2005, 16:41
door dano
FF kijken. dat begreep ik niet helemaal. Je moet me een beetje wegwijs maken. ik heb bij de downloads gekeken, maar open bbdcode.php was weg. Misschien heb je hem ergens anders verstopt?

In ieder geval:
Ik gebruik nu:

Code: Selecteer alles

$message = preg_replace('`(?<!<a href=")((http)+(s)?:(//)|(www\.))((\w|\.|\-|\_)+)(/)?(\s|$|<)`i', '<a href="http\\3://\\5\\6\\8" target="_blank">\\5\\6</a>\9', $message);
Maar deze pakt niet alles. Bijv wel http://www.daanooms.nl, maar niet http://www.daanooms.nl/index.htm

Ik heb er een nodig die alles wat op een url lijkt klikbaar maakt bijv als ik uit de adresbalk:
http://www.phpbb.nl/posting.php?mode=re ... 5562dbbb5a kopieer[/url]

Geplaatst: 05 jul 2005, 20:58
door DoubleJ
in phpBB zit het volgende bestand:
includes/bbcode.php
deze behandelt alle bbcode functies.

Daar staat deze functie die ik net aangaf dus ook in.

Geplaatst: 05 jul 2005, 22:25
door dano
Ik heb iets gevonden:

Code: Selecteer alles

$ret = eregi_replace(" ([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", " <a href='\\1://\\2\\3' target='_blank' target='_new'>\\1://\\2\\3</a>", $text);
$ret = eregi_replace(" (([a-z0-9_]|\\-|\\.)+@([^[:space:]]*)([[:alnum:]-]))", " <a href='mailto:\\1' target='_new'>\\1</a>", $ret);
Helaas doet deze geen url's die beginnen met http://www.enzovoort

Ik heb m'n oude maar even erachter gezet

Code: Selecteer alles

$message = preg_replace('`(?<!<a href=")((http)+(s)?:(//)|(www\.))((\w|\.|\-|\_)+)(/)?(\s|$|<)`i', '<a href="http\\3://\\5\\6\\8" target="_blank">\\5\\6</a>\9', $message);
Nu pakt die ook http://www.enzovoort

Maar in de beschrijving stond al dat de bovenstaande functie alleen gebruikt werd indien een spatie vooraf ging. Nu is dat een probleem daar bij mij vaak direct met een url wordt begonnen. Is er iemand die die voorafgaande spatie eruit weet te halen? dan werkt het voor mij!

Of weet iemand er voor te zorgen dat in de onderstaande functie ook url's worden herkent als http://www.daanooms.nl/index.htm ipv alleen http://www.daanooms.nl