Archiv verlassen und diese Seite im Standarddesign anzeigen : Automtischer Link
Hi zusammen
Wie kann ich einen Text der eingegeben wird, aus einem http://www.link.net einen funktionierenden Linkklick erstellen?
Wie es auch hier im Forum der Fall ist.
Im Prinzip kann ich dies mit replace vor dem Eintrag in die DB erreichen. Nur wie kann ich den tag wieder schliessen?
Gruss René
penizillin 18-07-2005, 19:12 man könnte preg_replace() dafür nehmen.
das pattern dazu wäre "ein string beginnt mit http(s):// bzw. ftp:// oder einfach www. und endet mit einem beliebigen leerzeichen". oder?
Such auch mal nach fertigen Funktionen im Forum. ;)
Hi habe so einiges gefunden, vom Tut von Sky bis hin zu verschiedenen CODE Schnipsel.
Leider verstehe ich das Tut von Sky nicht recht und die Schnipsel funktionieren auch nicht so recht.
$Beitrag = preg_replace("/(www)(.)([A-Za-z]{2,3})([A-Za-z0-9.-_/]{0,})b/","
<a target=\"_blank\" href=\"http://\0\">\0</a>",$Beitrag);
Bei diesem hier wird meine Text gleich komplett geschluckt!
Wer weis mir noch einen kleinen Rat?
Danke René
penizillin 21-07-2005, 15:12 klingt nach dem modifier U...
aber evtl. kannst du dir hier noch besseres abgucken:
http://regexlib.com/DisplayPatterns.aspx?cattabindex=1&categoryId=2
modifier U ?
ist den das nicht einheitlich?
Nun habe ich das ganze wei folgt abgeändert. Leider auch ohne Erfolg
$text = preg_replace("^(ht|f)tp(s?)\:\/\/[a-zA-Z0-9\-\._]+(\.[a-zA-Z0-9\-\._]+)
{2,}(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$"
,"<a target=\"_blank\" href=\"http://\0\">\0</a>",$text);
Wo mache ich den Fehler, weiss das jemand?
Und noch ein Versuche, welcher im nichts Endet
Habe nun nocheinmal das tut durchgelesen und mit dem Link von penizillin abgeglichen.
Aber leider wird mir noch immer nichts angezeigt! - Kein Text!
$text = preg_replace("/^(((ht|f)tp(s?))\://)?
(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.
(com|ch|de|net|at|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*
(/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$/i",
"<a target=\"_blank\" href=\"http://\ 0\">\0</a>",$text);
Wo ist nur der Fehler drin?
onemorenerd 21-07-2005, 16:20 Vielleicht hilft dir diese Seite weiter:
http://www.regexlib.com/Search.aspx?k=URL
Ja danke onemorenerd der selbe Link wie penizilin, hat mir auch weitergeholfen, indem ich nun den Platter aus dieser Seite verwende.
Nur ist das noch nicht die Lösung, sprich wie oben geschrieben wird noch immer der komplette Text geschluckt.
Ich suche weiter nach dem Fehler, wäre um weitere Tips recht froh.
Danke René
onemorenerd 21-07-2005, 16:46 Sorry, hatte den Link oben nicht gesehen.
Vorweg: Das Forum frißt u.U. bestimmte Schrägstriche, deswegen lieber ohne Tags ...
Wie ich das sehe (nur kurz überflogen), muß eine URL bei deinem RegExp am Zeilenanfang beginnen und am Zeilenende enden (^...$). Ist das denn so gewollt?
Fang doch mal ganz einfach an - zum Testen - auch wenn dabei erstmal die falschen Links produziert werden. Beispielsweise so:
/http:\/\/|www\..*\s/
Sobald nicht mehr der ganze Text verschwindet sondern wirklich was erstzt wird, kannst du das ganze dann verfeinern und Fehler beseitigen.
PhilippM 21-07-2005, 19:03 Versuchs doch mal hiermit:
Edit:
Das Forum verhunzt die Regex zu Unkenntlichkeit, ich mach mal einen Anhang!
PhilippM 21-07-2005, 19:06 Anhang
Original geschrieben von PhilippM
Das Forum verhunzt die Regex zu Unkenntlichkeit, ich mach mal einen Anhang! nimmst du code-tags oder zitierst du einen php tag, ist alles wieder da. leider ein bekanntes problem
He Phillip danke Dir für die Funktion, leider läuft Sie bei mir nicht.
Einzig mit dem Ansatz von onemorenerd komme ich einwenig weiter. Hier wird zumindest der Link gesetzt, wenn auch der Link selbst noch nicht richtig ist.
versuche es weiter
Gruss René
|
-
- |