Hallo,

Ik op zoek naar een functie of script die alle urls (zoals http://www.blabla.nl, www.blabla.nl of mailto:[email protected]) in een tekst omzet naar een echte link.

Dus ik haal wat tekst uit de database, zoals:
Blablabla bla die bla bla bla gamma gamma bla
blabla bla die bla bla die blabla gamma bla
koe koe blabla www.blabla.nl koe miauw blabla
koekkoe.
..... en dan moet dus van www.blabla.nl een klikbare link worden gemaakt die naar het desbetreffende adres verwijst.
Hallo foton,

Ik zou dit persoonlijk zo doen, ben zelf ook nog niet zolang met php bezig dus hoop dat het goed is :P

--------------
<?php
//Get link from database
$sql = "SELECT * FROM links";
$res = mysql_query($sql) or die (mysql_error());
while($list = mysql_fetch_object($res)) {

//echo de urls
echo' <a href='.$list->url.'>'.$list->naam.'</a>}
?>
<?php
//Get link from database
$sql = "SELECT url, naam FROM links";
$res = mysql_query($sql) or trigger_error (mysql_error());
while($r = mysql_fetch_array($res, MYSQL_ASSOC)) {

//echo de urls
echo' <a href="'.$r['url'].'">'.$r['naam'].'</a><br>';
}
?>
Klopt sabastiaan, sorry mijn fout :P
Kleine verbetering ;)
De urls worden niet apart opgeslagen in de database.

Je moet het zo een beetje bekijken.
Iemand post bijvoorbeeld een nieuwsbericht waarin hij ook een adres van een website vermeld (dit staat dus gewoon willekeurig ergens in de tekst).

Wanneer dat stukje tekst uit de database wordt opgehaald en op de website wordt geplaatst, dan moet het adres automatisch worden omgezet naar een echte link.
Denk dat hij meer op zoek is naar een UBB parser.
Zoek even op deze site naar een UBB parser (onder PHP Scripts)
Vers uit Wordpress 1.5.2:
<?php
/* not documented yet
wordpress: functions-formatting.php */
function make_clickable($ret) {
$ret = ' ' . $ret . ' ';
$ret = preg_replace("#([\s>])(https?)://([^\s<>{}()]+[^\s.,<>{}()])#i", "$1<a href='$2://$3' rel='nofollow'>$2://$3</a>", $ret);
$ret = preg_replace("#(\s)www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[^ <>{}()\n\r]*[^., <>{}()\n\r]?)?)#i", "$1<a href='http://www.$2.$3$4'; rel='nofollow'>www.$2.$3$4</a>", $ret);
$ret = preg_replace("#(\s)([a-z0-9\-_.]+)@([^,< \n\r]+)#i", "$1<a href=\"mailto:$2@$3\">$2@$3</a>", $ret);
$ret = trim($ret);
return $ret;
}
?>
Bedankt!

Zo te zien is dit wat ik zoek.
Ik wist wel dat het op deze manier kon, maar ik kwam er nooit uit met al die tekens. :-)
Zodra ik thuis ben zal ik gaan testen.
Ik heb de laatste functie even geprobeerd.
Website adressen worden omgezet naar een echte link, maar email adressen niet.
Hoe kan dit?
Niemand een idee?
Ik neem aan dat diegene die deze functie heeft gemaakt, zelf goed getest heeft.
Dus het zou moeten werken toch?

Reageren