Webstatt.org - Community seit 2006 - 2012 (2024?)

preg_replace & wordwrap Problem

user-307
17.05.2006 19:16

Hi!

Ich habe ein Problem mit dem Umrechen der Links.
Der Umbruch nach den 30sten Zeichen wird leider nicht gemacht traurig
Kann mir da wer helfen?

$message	= preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i", "<a href=\"$1\" target=\"_blank\">".wordwrap('$1', 30, '<br/>', 1)."</a>", $message);

.., Spark
Avatar user-300
17.05.2006 19:38

Du brauchst dafür den e Modifier und eine "spezielle" Syntax beim zweiten Parameter. Sie Beispiel 5 bei http://ch2.php.net/preg_replace lächeln

user-307
17.05.2006 20:05

kannst du einem regex-noob ein wenig auf die sprünge helfen. sobald ich den modifikator anhänge bekomme ich ne dicke fehlermeldung (parse error)

.., Spark
Avatar user-182
17.05.2006 20:26

wie wäre es mit nem einfachem
$str = preg_replace('/\S{60}/', '\0 ', $str);
?

Seid ihr auch schon wix'r? xD
Avatar user-255
18.05.2006 15:09

Franky, ich glaube, er will Links umwandeln und nicht ueberlange Woerter ausloeschen.
Spark, was du suchst nennt sich preg_replace_callback().

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-300
18.05.2006 15:24

Ungetestet:
$message = preg_replace('/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/ei', "'<a href=\"\\1\" target=\"_blank\">' . wordwrap('\\1', 30, '<br />', 1) . '</a>'", $message);

user-307
18.05.2006 17:19

Original von user-300
Ungetestet:
$message = preg_replace('/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/ei', "'<a href=\"\\1\" target=\"_blank\">' . wordwrap('\\1', 30, '<br />', 1) . '</a>'", $message);

danke user-300! es lag an fehlenden anführungszeichen, dass es bei mir nicht ging traurig

.., Spark