Seite 3 von 4

Verfasst: 16.11.2003 12:44
von saerdnaer
grundsätzlich sind preg funtktionen immer besser als ereg. und der code den ich oben gepostet habe enthält bereits alle im text angesprochene verbesserungen...

ah

hab das prob auch und Zeilenumbruch klappt net

Verfasst: 02.04.2004 14:25
von bloody_nOOb
@ saerdner ich habe probiert deinen code bei mir zu integrieren aber hat nett geklappt könntest du (oder wer anders nochmal den Zeilenumbruch-MOD posten mit preg???) ich habe folgendes gemacht:

Code: Alles auswählen

##########OPEN#######ÖFFNE#######
includes\functions_post.php
#################################

######FIND########FINDE##########
   //
   // Clean up the message
   //
   $message = trim($message);

##############ADD/AFTER#######DANACH EINFÜGEN###########

if ( preg_match("#([^[:blank:]]{50})#", $message)) // Wenn Nachricht ein Objekt mit 50 Zeichen ohne ein Leerzeichen enthaelt
      {
      $message = str_replace("\n", " \n", $message); // Vorbereiten fuer Zerlegung
      $message_array = preg_split("#[[:blank:]]#", $message); // Zerlege Nachricht
#####################################################################################
Bekomme jetzt diese Errors:
Parse error: parse error, unexpected $end in h:\easyphp\www\bb2\includes\functions_post.php on line 879

Fatal error: Call to undefined function: generate_smilies() in h:\easyphp\www\bb2\posting.php on line 942
auszug aus meiner functions.php:

Code: Alles auswählen

        //
	// Clean up the message
	//
	$message = trim($message);
      if ( preg_match("#([^[:blank:]]{50})#", $message)) // Wenn Nachricht ein Objekt mit 50 Zeichen ohne ein Leerzeichen enthaelt
     {
      $message = str_replace("\n", " \n", $message); // Vorbereiten fuer Zerlegung
      $message_array = preg_split("#[[:blank:]]#", $message); // Zerlege Nachricht

Verfasst: 03.04.2004 17:17
von Underhill
Hi bloody_nOOb,

was du da eingebaut hast ist wahrscheinlich auch nur ein Auszug aus dem Mod... (Die IF-Schleife scheint nicht beendet)

Hier der Link zum kompletten Mod:
http://www.phpbb.de/viewtopic.php?t=45291
(mit regulären Ausdruecken)

Gruss
Underhill

Verfasst: 15.07.2004 16:58
von Rieman
Ich hab den Mod nun auch eingefügt, klappt auch wunderbar, aber gibt es eine Möglichkeit ein optionales Leerzeichen oder einen optionalen Zeilenumbruch wie in HTML ( wbr ) statt dem normalen Leerzeichen einzufügen?

Es würde dann eben schöner aussehen wenn wirklich am Ende einer Zeile umgebrochen wird und nicht auf einmal mitten im Text Leerzeichen entstehen.

Verfasst: 15.07.2004 21:08
von Underhill
Rieman hat geschrieben:Es würde dann eben schöner aussehen wenn wirklich am Ende einer Zeile umgebrochen wird und nicht auf einmal mitten im Text Leerzeichen entstehen.
Hmm, das ist doch der Sinn des Mods... :wink:

Code: Alles auswählen

## Description: Erzwingt ein Leerzeichen nach einer zusammenhängenden Zeichenfolge
##  von 50 in einer Nachricht. Gegen Benutzer die mit extrem langen Worten ein
##  horizontales Scrolling erzwingen wollen und damit das Design zerstören.
##  Erstellt und getestet mit phpBB 2.0.6
Gruss
Underhill

Verfasst: 16.07.2004 08:08
von Rieman
Ja, das hab ich schon kapiert :)
Nur bei mir wird halt immer nach 50 Zeichen, egal wie, ein Leerzeichen eingefügt. Bei einer Folge von "w" passt das ja auch wunderbar, aber bei einer Abfolge von "." entstehen da eben nach 50 Zeichen Leerzeichen und das nicht nur am Zeilenende das eben ein Umbruch entsteht.

Verzwickt zu beschreiben, aber ich hoffe so wars nun verständlich.

Verfasst: 16.07.2004 08:37
von Underhill
hast du ein beispiel (url)?

Gruss
Underhill

Verfasst: 19.07.2004 16:50
von Rieman
Schau mal unter:
http://www.numerische-quadratur.de/forum/
Im Öffentlichen Forum das Testthema.

Verfasst: 19.07.2004 17:22
von Underhill
Hi,

in deinem Beispiel funktioniert aber alles korrekt...

Die "w"'s werden nach 100 stueck umgebrochen und die Punkte auch... (siehe Quelltext)

Du bist dir aber dessen Bewusst das bei einer TrueType-Schriftart das "W" breiter ist als ein Punkt - oder? :wink:

Aber zum Umbruch:

Hast du schonmal den Tipp in der

Code: Alles auswählen

## Author's Note:
...
## $message_array[$x] = eregi_replace("([^[:blank:]]{xx})", "\\1\n", $message_array[$x]);
...
probiert?

Gruss
Underhill

Verfasst: 19.07.2004 19:40
von Rieman
Ja, klappt auch soweit alles :)
Aber wenn du dir die Punktezeile anschaust, ist doch in der Mitte nen Leerzeichen, jedoch wird da ja nicht die Zeile umgebrochen.
Meine Frage zielte darauf ab, ob das Leerzeichen da sein muss, wenn die Zeile eben nicht gebrochen wird.

Bei HTML gibt ja <wbr> die Möglichkeit eines Umbruchs an, bricht aber nicht die Zeile wenn es nicht Zeilenende ist. Somit verhindert man Umbrüche mitten in der Zeile.

In der Punktezeile ist nun eben auch nen Leerzeichen in der Mitte der Zeile. Gibt es also auch die Möglichkeit ein Leerzeichen einzufügen wenn benötigt und eben nicht wenn nicht?

Wie verwirrend ;-)