PHP :: Reguläre Ausdrücke :: Problem
-
Schau dir mal den e modifier an
-
EDIT: Cool, danke, hat mir beim letzten Problem schonmal geholfen, jetzt ist nurnoch das Problem mit dem trim_long_words...
-
Die Website in deinem Anhang funktioniert nicht!
-
lol... warte mal 10 sekunden ab ^^ oder klick auf aktualisieren oder auf netzwerkeinstellungen oder auf zurück...
EDIT: Und lies dir die "Fehlermeldung" auch mal durch: "Die Seite will nicht angezeigt werden." Also wer das für eine echte Fehlermeldung hält...
-
-
Hmm... ne, das hilft mir nicht, weil:
ich will Wörter umbrechen, die zu lang sind: Ja
ich will URLs umbrechen, also http://www.gaaaaaaaaaaanz-lange-url.de/ : Nein.Und diese Funktion würde aber beides oder garnichts von beidem umbrechen.
-
Was kann denn i=0;a);++i) <-- hier besser foreach for(j=0;a[i]);++j) <-- warum gehst du jeden Buchstaben einzeln durch ???
-
Nunja... no comment
Na sag du mir, wie ich das machen soll, ich bin hier ja derjenige, der keine Ahnung hat :p Aber es muss so sein, dass bei
http://www.url.com/folder/file.php?param=value¶m2=value2
und bei
http://www.newssite.com/articles/05/02/01,8,50,23.htm
nichts zerstückelt wird, aber bei
loooooooooooooooooooooooooooooooooooooooooooooooooooool
schon. Das ist mein Problem. Ich wieß, dass man das wirgendwie mit regulären Ausdrücken machen muss, aber ich weiß nicht wie ich das anstellen soll...
-
ist denn jetzt dein $txt Plain-Text, oder schon HTML-Code?!
Wenn du z.B. zuerst htmlspecialchars über den String laufen lässt, dann mit deinem preg_replace die URLs durch Tags ersetzt und die "Anzeige-URL" ggf. entsprechend kürzt, dann kannst du nachher einfach dein explode machen. Wenn dann das erste Zeichen eines Elements ein < ist, dann weißt du, dass es sich um eine URL handelt und gehst einfach weiter zum nächsten Element.
Oder du machst einfach wieder ein preg_replace und suchst Strings mit z.B. mehr als 50 Zeichen, dia aber nicht in < > eingeschlossen sind
-
$message=str_replace("\\\\","\\",$message); $message=str_replace("\\'","'",$message); $message=str_replace("\\\"","\"",$message); $message=get_short($message,512); // $message=trim_long_words($message,38); // Plain Text, außer Zeilenumbrüche $message=preg_replace('~(http\:\/\/)([0-9a-zA-Z\,\.\-_\%\/]*)([0-9a-zA-Z\,\.\-_\%\&\?\=\/]*)~e',"'<a href=\"\\1\\2\\3\" title=\"\\1\\2\\3\" target=\"_blank\">'.get_short('\\2',36).'</a>'",$message); // Links evtl. enthalten
Es kommt drauf an, wo man es durchlaufen lassen will.
-
Hast du mit meiner Vorgehensweise jetzt etwas anfangen können - oder was genau ist jetzt noch deine Frage?!