Textlink als Link durch preg_replace ersetzen
Ich habe anscheinend ein Problem, bei dem ein Textlink durch einen Link zu der veröffentlichten Website ersetzt wird. Er wird nicht verlinkt.
Der Code:
$status_text = preg_replace('#(\A|[^=\]\'"a-zA-Z0-9])(http[s]?://(.+?)/[^()<>\s]+)#i', '\\1<a href="\\2">\\3</a>', $status_text);
echo $status_text;
$status_text
wird aus einem MySQL-Feld namens gezogencontents
, und enthält anderen Text, aber ich möchte nur den Link verlinken.zusätzlichIch möchte auch, dass nicht die vollständige URL angezeigt wird, sondern nur die Hauptdomäne.
UPDATE: Wir haben zwei andere preg_replaces auf derselben Seite, die nach Dingen mit + und # suchen, die auf Bereiche der Site verweisen. Sie funktionieren derzeit und müssen nicht mit den oben genannten in Konflikt stehen:
$status_text = preg_replace("/#([a-z_0-9]+)/i", "<a href=\"http://url.com/hashlink/$1\">$0</a>", $status_text);
$status_text = preg_replace("/\+([a-z_0-9]+)/i", "<a href=\"http://url.com/pluslink/$1\">$0</a>", $status_text);