Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Automtischer Link [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Automtischer Link


 
rönee
18-07-2005, 18:58 
 
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?

 
TobiaZ
18-07-2005, 19:32 
 
Such auch mal nach fertigen Funktionen im Forum. ;)

 
rönee
21-07-2005, 15:00 
 
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

 
rönee
21-07-2005, 15:24 
 
modifier U ?

ist den das nicht einheitlich?

 
rönee
21-07-2005, 15:33 
 
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?

 
rönee
21-07-2005, 15:40 
 
Und noch ein Versuche, welcher im nichts Endet

 
rönee
21-07-2005, 16:16 
 
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

 
rönee
21-07-2005, 16:23 
 
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

 
Wurzel
21-07-2005, 19:46 
 
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

 
rönee
21-07-2005, 19:49 
 
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é

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:26 Uhr.