CentennialDawg
10-06-2006, 12:48
Hallo!
Gibt es eine PHP-Funktion, die URLs automatisch erkennt und mit HTML in einen Link umwandelt?
Beispiel: in einem Text wird eine URL angegeben:
Text Text Text http://www.angegebene-homepage.de Text Text Text
Ist es mit PHP nun möglich, nur die URL in einen Link zumzuwandeln, den Text unverändert wiederzugeben?`
Vielen Dank für die Hilfe!!
Gruß
CentennialDawg
edit:
ok, wie ich sehe gibt es diese Funktion, aber wie heißt sie? ich habs nämlich noch nicht gefunden...
Mir regex?
Sprich preg_replace (http://de.php.net/preg_replace)
penizillin
10-06-2006, 13:09
und du hast bei google (http://www.google.de/search?hl=de&q=php+url+in+link+umwandeln&meta=) wirklich gar nicht gefunden? hm...
$string = preg_replace("/([a-zA-Z0-9]+):\/\/([^\s\"\]]+)/e"], "parse_url('\\1', '\\2')", $string);
function parse_url($protocol, $link)
{
if(strlen($link) > 60)
$slink = substr($link, 0, 60/2)."...".substr($link, -(60/2-3));
else
$slink = $link;
return "<a href=\"".$protocol."://".$link."\">".$protocol."://".$slink."</a>";
}
Parsed die URL und kürzt sie auf 60 Zeichen
Original geschrieben von Luke
$string = preg_replace("/([a-zA-Z0-9]+):\/\/([^\s\"\]]+)/e"], "parse_url('\\1', '\\2')", $string);
bubububub://bljablja ist also url?
function parse_url($protocol, $link)
{
if(strlen($link) > 60)
$slink = substr($link, 0, S_MAX_URL_LENGTH/2)."...".substr($link, -(S_MAX_URL_LENGTH/2-3));
else
$slink = $link;
return "<a href=\"".$protocol."://".$link."\">".$protocol."://".$slink."</a>";
}
Parsed die URL und kürzt sie auf 60 Zeichen
hast du nicht so ein komische gefühl, dass parse_url eine standartfunktion von php ist, und erwartet nur 1 Parameter?
http://de2.php.net/manual/de/function.parse-url.php
> bubububub://bljablja ist also url?
exacto. ed2k://|file|Principia.Discordia.pdf|9646345|4D2A902BF920FCE9A4F9BC5998D57B96|/ auch.
> hast du nicht so ein komische gefühl, dass parse_url eine standartfunktion von php ist
jetzt wo du's sagst. Aber hatte es in ner Klasse, da hat's keine probleme gemacht
einfach und ohne extras
$pattern = '/\b((http:\/\/|https:\/\/|www\.)[^\s]+\.[a-z]{2,4})\b/s';
$ersatz = '<a href="$1">$1</a>';
echo preg_replace($pattern, $ersatz, $TXT);