hilfdirselbst.ch
Facebook Twitter gamper-media
Baschi3
Beiträge: 294
30. Mär 2003, 21:06
Beitrag #1 von 3
Bewertung:
(724 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

erg_replace


Hallo

Ich möchte alle Links von einem in Formular einegebenen Text in anclickbare Links umwandeln mit folgendem Code:

$footer = ereg_replace("(http://|ftp://)([a-zA-Z1-9\.\-\/]*)","<a class=\"normal\" href=\"\\1\\2\">\\2</a>",$str);

klappt in der Regel, aber bei http://www.sp-ps.ch wird nur www.sp zwischen den a-Tag gesetzt.
Kann mir jemand sagen warum?

Danke Top
 
X
Miro Dietiker
Beiträge: 699
30. Mär 2003, 21:25
Beitrag #2 von 3
Beitrag ID: #29816
Bewertung:
(724 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

erg_replace


Hi Baschi!

Ich habe keine Dokumentation welche 100% auf die Unterschiede zwischen
ereg und preg eingeht. Da preg mehr verbreitet ist und auch schneller
rate ich auch eher diese zu nutzen. Leider gibt es aber in der Muster-
definierung einige Unterschiede, so dass man genau wissen muss, wie
man diese Muster wirklich definiert / übernimmt.

Konkret dein Problem:
ereg macht hier etwas unvorhergesehenes (für mich) denn das "\-" im
ausdruck wird nicht richtig erkannt als Pattern. Interessant hierbei
ist, dass das Problem erledigt ist, wenn man \- ans Ende der Muster-
definition nimme. Ich empfehle es entsprechend zu ändern und es ist
OK ;)

also ändern zu:
$footer = ereg_replace("(http://|ftp://)([a-zA-Z1-9\.\/\-]*)","<a class=\"normal\" href=\"\\1\\2\">\\2</a>",$str);

*smile* interessant... denn nach meiner definition müsste auch Deine
Variante wirklich ok sein :) aber die \- scheinen am Ende von
Charakter-klassen stehen zu müssen .)

Hope It works... Miro Dietiker
als Antwort auf: [#29815] Top
 
Baschi3
Beiträge: 294
30. Mär 2003, 21:41
Beitrag #3 von 3
Beitrag ID: #29819
Bewertung:
(724 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

erg_replace


Hi Miro,

super!!! vielen Dank.

Aber dass die Reihenfolge eine Rolle spielt?
Sachen gibts!

Franz
als Antwort auf: [#29815] Top