Überflüssige Ausrufenzeichen entfernen.....

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Überflüssige Ausrufenzeichen entfernen.....

Beitrag von Christian_N »

Deine phpBB Version: 2.0.15
Typ Deines phpBB Forums: Standard phpBB (auch Vanilla genannt)
MODs: Ja
Dein Wissensstand: Grundwissen
Link zu Deinem Forum: [url]http://[/url]

PHP Version:
MySQL Version:


Was hast Du gemacht, bevor das Problem aufgetreten ist?



Was hast Du bereits versucht um das Problem zu lösen?




Fehlerbeschreibung und Nachricht

Hallo, hab den MOD mir runtergeladen und eingebaut:

Code: Alles auswählen

$post_subject = eregi_replace("([\!\?\.])+","\\1",$post_subject);
kann man den umschreiben, das er es nicht in !, ?, . ersetzen tut sondern in drei !!!, ???, ...? ich hätte es gerne so, da wenn jemand jetzt schreibt "Die 3 ???" würde er es in 1 ? ersetzen.

Wenn man jetzt was schreibt tut man auch oft mit.... was beenden so, daher wäre es gut wenn er ab 4te Ausrufenzeichen in 3 umwandelt.

Im voraus vielen Dank.

Gruß SuesseMaus28884
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Gute Frage. Mit den preg_match-Filtern steht ich noch auf Kriegsfuß.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag von Bootenks »

Ich glaube (ich hoffe dass mich der Morgen nicht verblödet hat so stark wie es hier regnet), dass man es folgenderweise lösen kann:

Code: Alles auswählen

$post_subject = eregi_replace("([\!\?\.])+","\\1\\1\\1",$post_subject);
So müsste das schon klappen. \\1 Ist ja der Platzhalter für ein Zeichen. Test it.
Nur ein Informatik Student. ^^
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ah ja, wieder was gelernt...
Aber Zeichen wäre nicht ganz korrekt, sondern eher Zeichengruppe, die im Suchstring definiert wird (also mit []).
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

So muss:

Code: Alles auswählen

$post_subject= eregi_replace("([\!\?\.]){4,}","\\1\\1\\1",$post_subject);
Mit Boo's Lösung würden auch zwei Fragenzeichen gegen 3 ersetzt, was ja bestimmt nicht sein soll!
Mit dieser Zeile werden nur Zeichen die mehr als 3 sind gegen 3 ersetzt. :)

// EDIT
Mein erster Versuch ging auch in die Hose. :rolleyes:

// EDIT 2
Tippfehler :!:

// EDIT 3
Kleines Problem!

Mit der obigen Zeile werden kombinationen wie !!!!????!!!! gegen ??? ersetzt, was wohl auch nicht im sinne des erfinders ist. ^5
Deswegen lieber einzeln prüfen:

Code: Alles auswählen

	$post_subject = eregi_replace("([\!]){4,}","\\1\\1\\1",$post_subject);
	$post_subject = eregi_replace("([\?]){4,}","\\1\\1\\1",$post_subject);
	$post_subject = eregi_replace("([\.]){4,}","\\1\\1\\1",$post_subject);
Zuletzt geändert von AmigaLink am Di 17.Mai, 2005 14:42, insgesamt 3-mal geändert.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Danke das letzte hat super geklappt, hab das ganze auch gleich für $post_message gemacht also für des nachrichtenfeld :)

Gruß SuesseMaus28884
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Prima! :p

Wenn du Codeblöcke von der Begrenzung auszuschließen möchtest:

Code: Alles auswählen

#
#----------[ OPEN ]-------------------------------------
#

includes/bbcode.php

#
#----------[ FIND ]-------------------------------------
#

								$code_entities_match = array('#<#', '#>#', '#"#', '#:#', '#\[#', '#\]#', '#\(#', '#\)#', '#\{#', '#\}#');

#
#----------[ INLINE FIND ]------------------------------
#

, '#\}#'

#
#----------[ INLINE AFTER, ADD ]------------------------
#

, '#\?#', '#\.#' , '#!#'

#
#----------[ FIND ]-------------------------------------
#

								$code_entities_replace = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}');

#
#----------[ INLINE FIND ]------------------------------
#

, '}'

#
#----------[ INLINE AFTER, ADD ]------------------------
#

, '?', '.', '!'

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM
:D
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Verstehe jetzt nicht so ganz was meinst damit... aber möchte eigentlich nichts ausschlissen von der begrenzung, da man es ja net übertreiben soll mit die zeichen und wenn was ausgeschlossen wurde könnt man es dort drin übertreiben *gg*

Aber wie macht man es wenn jemand jetzt sag wir mal so postet ?!?!?!?!?! das dies auf 4 begrenzt wird ?!?! dasselbe auch andersrum bei !?!?!?!?!?!?!?!?!?! = !?!?

Weil ab gemerkt wenn ich es jetzt so postet wie hier eben das dies net gekürzt wird.

Wenn ich jetzt es so mache

Code: Alles auswählen

 $post_subject = eregi_replace("([\?!]){5,}","\\1\\1\\1\\1",$post_subject);
 
funktioniert nicht er bringt mir da dann wenn man ?!?!?!?!?! gemacht 4 fragenzeichen also ersetzt es in diese dann ???? die ausrufenzeichen werde dann raus genommen und bei !?!?!?!?!?!?! macht er !!!! und lässt die fragenzeichen weg. :(
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Jaja, die regulären Ausdrücke können einen zur verzweiflung bringen! :D

Code: Alles auswählen

		$post_subject = eregi_replace("([\!][\?]|[\?][\!]){3,}","\\1\\1",$post_subject);
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

man bist du gut :) Danke dir vielmals :)
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

man bist du gut
Danke :!:
Aber das sieht nur so aus. :D
Ohne einen Blick in die php-referencen zu werfen, hätte ich das auch nicht hinbekommen! :rolleyes:
Ausserdem haben mir die regulären Ausdrücke auch schon so manch ein graues Haar beschert. ^1
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich hab da vorhin auch mal genauer reingelesen, da ich über Deine Fähigkeiten, AmigaLink, doch erstaunt war. Nun, jetzt bin ich ja schlauer, was Dich anbelangt und man: Ich werde wohl auch Jahre brauchen, daß komplett zu verstehen.
In sich ist jede Option und jeder Teil ja sehr simple.
Aber einen komplexen "regulären" Ausdruck auseinander zu nehmen und zu verstehen, was der genau wie macht...
Und da heisst es im Buch:
"Reguläre Ausdrücke lassen auch PHP stark überlegen".

Daher mein Credo:
Wer sowas erfindet, gehört entweder in die lange Reihe von Genies oder ¢2
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

oxpus hat geschrieben:Wer sowas erfindet, gehört entweder in die lange Reihe von Genies oder ¢2
:rofl:
Ich würde sagen ersteres. Denn was man damit alles anstellen kann ist schon Genial!
Ich werde wohl auch Jahre brauchen, daß komplett zu verstehen.
Ich wage anzuzweifeln das dies überhaupt möglich ist. ^d
"Reguläre Ausdrücke lassen auch PHP stark überlegen"
;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

@AmigaLink
Wie war das mit einem Topic extra hierfür?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Mach eins auf! :D
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn ich dafür Zeit hätte, gerne.
Aktuell nimmt mein Mod zu viel Zeit in Anspruch, um mich auch noch regulären Ausdrücken zu widmen.
Kommt aber noch. Garantiert!

Oder KB-Eintrag?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Egal ob KB eintrag oder Topic (Ersteres wäre wohl eher für eine Erklärung der Regulären Ausdrücke und letzteres für eine Diskussion (Probleme, Lösungen, ...) geeignet. Wobei man die Diskussion ja auch in den Kommentaren der KB machen kann (also KB-Eintrag! ;))).
Ich hab mir die referencen der Regulären Ausdrücke nun schon so oft durchgelesen das ich, wie oben geschehen, oft wirklich nur reinsehen muss um nachzusehen wie mein Gedanke in Codezeilen gefasst wird. Aber erklären könnte ich den ganzen Krempel beim bestem willen nicht!!! :rolleyes: ^1
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann sind wir schon 2.
Okay, ich werde mal das nötigste aufführen und eine Artikel draus machen.
Dann können wir auch munter darüber diskutieren.
Ich werde mich aber auf die regulären Ausdrücke beschränken, nicht die dazugehörenden PHP-Funktionen erklären.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ich war mal so frei und habe Boo's Beitrag zu den Regulären Ausdrücken an den KB-thread gehangen, da er dort thematisch hingehört. ;) *immer noch herzklopfen hat (weil zum erstem mal geteilt und zusammengeführt in einem schritt)*
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ruhig Brauner. Geht doch alles glatt hier ;) Bis auf die 1001 Bugs :confused:
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ruhig Brauner. Geht doch alles glatt hier
Ja, wie ich feststellen musste ist die Funktion ganz easy hier. Bei mir ist das noch so eine sache für sich, klappt aber (auf umwegen) ebenfalls. :)
Aber da ich anfänglich ein paar Probleme damit hatte und diese direkt in der Datenbank beheben musste (was ich hier ja logischerweise nicht machen kann), ging mein Puls halt ein wenig hoch. :(
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Axo. Naja, ich hätte ja das Ganze wieder beheben können.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten