Probleme mit preg_replace :-(

  • Themenstarter Themenstarter encom
  • Beginndatum Beginndatum
E

encom

Hallo, ich benutze folgendes um eine String in einen Link umzuwandeln.

PHP:
$text = preg_replace("=(^|\ |\\n)(http:\/\/|http:\/\/www\.)([a-zA-Z0-9\.\/-\_]{1,})=i", "\\1<a href=\"\\2\\3\" target=\"_blank\">\\2\\3</a> ",$text);

Das meiste funktioniert auch, jetzt habe ich aber diesen Link


Originallink

Code:
http://www.tldp.org/HOWTO/HOWTO-INDEX/programming.html

Nach der Umwandlung habe ich das

Code:
<a href="http://www.tldp.org/HOWTO/HOWTO" target="_blank">http://www.tldp.org/HOWTO/HOWTO</a> -INDEX/programming.html

er macht den link also vor dem Bindestrich zu.

Was ist da falsch?

Danke
 
Zuletzt bearbeitet von einem Moderator:
Hi

Das Problem hatte ich auch mal. Es liegt daran, dass du hier:
PHP:
[a-zA-Z0-9./-_]
den Bindestrich zuletzt nehmen muss, sonst denkt der Computer, der Strich bedeute "von ... bis". Also einfach - und _ austauschen:
PHP:
[a-zA-Z0-9./_-]
Dann sollte es wunderbar funktionieren. ;)

Gruss

SilentWarrior
 
Danke dir, klappt wirklich super habe noch Fragezeichen und = eingefügt da diese ja auch in Links vorkommen können
 
Zurück