tekst omzetten naar link
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.
Ik zou dit persoonlijk zo doen, ben zelf ook nog niet zolang met php bezig dus hoop dat het goed is :P
--------------
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?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>}
?>
//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>}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?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>';
}
?>
//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 ;)
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.
Zoek even op deze site naar een UBB parser (onder PHP Scripts)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?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;
}
?>
/* 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;
}
?>
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.
Website adressen worden omgezet naar een echte link, maar email adressen niet.
Hoe kan dit?
Ik neem aan dat diegene die deze functie heeft gemaakt, zelf goed getest heeft.
Dus het zou moeten werken toch?
Jah maar het komt uit wordpress en je kan dus beter de zelfde functie gaan zoeken die wat simpeler is deze is wel moeilijk
De functie lijkt mij opzich simpel genoeg... alleen mist er bij die regel van het omzetten van het emailadres iets denk ik. Ik weet alleen niet wat.... ik word al gek als ik naar die tekenreeks zit te kijken :-P
Ik heb zelf wel wat gerommeld, maar ik kom niet echt verder dan wat ik al had :-(
ook dit wordt omgezet:
Quote:
$proef = "Hier kan ik van alles vertellen op mij website www.ronholst.nl.<br> Maar wil je meer weten stuur een mail naar [email protected]. Ik hoor graag van je.";
$verhaal = make_clickable($proef);
echo "$verhaal";
$verhaal = make_clickable($proef);
echo "$verhaal";
Gewijzigd op 18/01/2016 22:07:56 door Ron Holst
Serieus? Heb je nou net geantwoord op een topic van 10 jaar oud?
Ik doe hem maar dicht om verwarring te voorkomen.