Der folgende Code wird verwendet, um URL aus einem String mit PHP zu finden. Hier ist der Code:
%Vor%Nun, es zeigt einen Link, aber wenn ich einige Links zur Verfügung stelle, funktioniert es nicht und auch wenn ich ohne http: // schreibe, dann zeigt es keinen Link. Ich möchte, dass jeder Link zur Verfügung gestellt wird, sollte es aktiv sein, wie stackoverflow.com.
Irgendwelche Hilfe bitte ..
Eine Arbeitsmethode zum Verknüpfen mit http / https / ftp / ftps / scp / scps:
$newStr = preg_replace('!(http|ftp|scp)(s)?:\/\/[a-zA-Z0-9.?&_/]+!', "<a href=\"\0\">\0</a>",$str);
Ich rate dringend, NICHT zu verlinken, wenn es nur einen Punkt hat, weil PHP 5.2, ASP.NET usw. berücksichtigt wird, was kaum akzeptabel ist.
Update: wenn Sie www. Strings auch, schauen Sie sich das an.
Wenn Sie etwas wie stackoverflow.com
erkennen wollen, müssen Sie nach allen möglichen TLDs suchen, um etwas wie Web 2.0
auszuschließen, was ziemlich lange Liste . Dies entspricht jedoch auch etwas wie ASP.NET
etc.
Die Regex würde etwa so aussehen:
%Vor%Dies passt nur zu Domains, die auf .com, .org und .net enden. Wie bereits erwähnt, müssten Sie diese Liste auf alle TLDs erweitern
@axiomer Ihr Beispiel funktionierte nicht, wenn der Link im Format ist:
https://stackoverflow.com?val1=bla&val2blablabla%20bla%20bla.bl
richtige Lösung:
%Vor%erzeugt:
%Vor%Tags und Links php