Niranda Geschrieben 15. April 2011 Geschrieben 15. April 2011 Hey hey... ich weiß zwar nicht, was der Spaß mit e-b-a-y soll, aber hier mal ein etwas effektivierer Filter <?php function filter_ibay ($text) { $replace = "*****"; $filteredText = ""; $words = explode(" ", $text); foreach ($words as $pos => $word) { if (preg_match_all("/(e).*?(b).*?(a).*?(y)/is", trim(strtolower($word)), $matches)) { $word = $replace; } $filteredText .= $word." "; } $filteredText = trim($filteredText); return $filteredText; } ##--> Example $test = "Ich war gestern wieder auf e_Bay shoppen und da das Wort immer Zensiert wird, schreibe ich jetzt mal e_B-a*Y oder EundB---A&->Y auf!"; $newtest = filter_ibay($test); echo "<table border=1><tr><td>Original</td><td>".$test."</td></tr>"; echo "<tr><td>Geändert</td><td>".$newtest."</td></tr></table>"; ?> Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 (bearbeitet) Hehe,Kai muss sich von ner Frau was sagen lassen :devil: und das als Chef wenn das die Mitarbeiter erfahren :D Da musste ich mich einfach drüber lustig machen @Niranda haste das kopiert oder selbst geschrieben ? bearbeitet 15. April 2011 von Julian Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 (bearbeitet) e-b-a-y EEBBAAYY eebbaayy 3.2.1 Meins Malte eb-ay e-ba-y Kai der Filter ist kaputt oder zimmlich undicht. bearbeitet 15. April 2011 von Julian Zitieren
Kai Geschrieben 15. April 2011 Geschrieben 15. April 2011 *g* regex-fun :cornut: Der Reguläre-Ausdruck ist aber zu effektiv, würde das halbe Forum weg zensieren :-) Teste den Ausdruck mal mit: als ich einmal auf diesen auktionshaus war da sah ich ein angebot von aldi und toysrus Ein paar Erläuterungen zu dem Ausdruck: /(e).*?(b).*?(a).*?(y)/is Bei gesetztem /s geht der . auch über Zeilenumbrüche hinaus, will man nicht wenn man davon ausgeht das der Suchstring in einer Zeile steht. Die Klammern brauchst du nicht. () = Substitution, alles was in der Klammer matcht wird in Variablen abgelegt die später verwendet werden können. Im Fall von preg_match_all im Array das die Funktion zurück gibt. * matcht 0 oder mehrmals, ? brauchst du da nicht extra hinten anstellen. Der Regex kann also auch so aussehen: /e.*b.*a.*y/is wäre aber genauso gefräßig und je nach größe des Textes auch sehr unperformant. Um verschiedene Variationen zu filtern, ohne versehentlich normalen Text zu zensieren müsste der Ausdruck etwas genauer definiert werden. zb sowas e[^a-z0-9]*e*b[^a-z0-9]*b*a[^a-z0-9]*a*y*y [^a-z0-9] bedeutet alles außer a-z und 0-9, also e-b.+a,y usw. * 0 oder mehrmals matcht auf Variationen wie: e-b_a-y e.b..a:y e-b-a-y eeebbaayy Das würde die Wahrscheinlichkeit auf falsche Treffer verringern. Ne nette Spielwiese für regex: Externe Links nur für Mitglieder sichtbar Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 (bearbeitet) LOL da binn ich fast raus,wenn das auch nur einer hier im Forum verstanden hat fresse ich einen Apfel Externe Links nur für Mitglieder sichtbar bearbeitet 15. April 2011 von Julian Zitieren
Kai Geschrieben 15. April 2011 Geschrieben 15. April 2011 Nen ganzen Apfel oder vielleicht doch nur n EI (pod) :arf: Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 Nen ganzen Apfel oder vielleicht doch nur n EI (pod) :arf: Ei pod sieht schlecht aus,wenn dann Ei phone Und ein Besen habe ich gerade nicht im Hause. Zitieren
Kai Geschrieben 15. April 2011 Geschrieben 15. April 2011 Cool dann schalte vorher das GPS-Tracking ein, dann können wir die Route durch deinen Körper verfolgen *gg* Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 Cool dann schalte vorher das GPS-Tracking ein, dann können wir die Route durch deinen Körper verfolgen *gg* :DIch denke das bringt nichts wenne glück hast kannste den Standort auf 3m bestimmen :mad: aber ich mach die Kamera an dann kann ich es mir nacher ansehen wenn es nach dem Wasserschaden noch funktioniert wenn du weist was ich meine P.S.Dar wir ja sowieso gerade Offtopic sind,wie wäre es mit einem Toiletten smiley :confused5: Zitieren
Kai Geschrieben 15. April 2011 Geschrieben 15. April 2011 Wenn du einen Toiletten Smiley hast? Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 Ja,ich mach gleich einen stellste den dann rein ? Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 <a href='http://www.smiliemania.de/' target='_blank' title='smilies smileys'><img src='http://smiliemania/smilie.php?smile_ID=5279' alt='smilies smileys' border='0'></a> Und als UBB: Externe Links nur für Mitglieder sichtbar Zitieren
Craziiieh Geschrieben 15. April 2011 Geschrieben 15. April 2011 Kai bist du studierter Informatiker ? Ich mach grad meine Informatik Schulkurse. Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 LOL das mach ich auch gerade wobei wir nur vorm PC sind in Facebook. Zitieren
logi Geschrieben 15. April 2011 Geschrieben 15. April 2011 LOL da binn ich fast raus,wenn das auch nur einer hier im Forum verstanden hat fresse ich einen Apfel Externe Links nur für Mitglieder sichtbar Jo,dann friss mal, ich hab's verstanden. Sorry bin halt Programierer Zitieren
Niranda Geschrieben 15. April 2011 Autor Geschrieben 15. April 2011 den code hab ich in ein paar Minuten hingeklatscht und ein mal kurz getestet Darum sieht der so aus... naja.. Woran man meinen Code immer erkennt - An der Kommentarformatierung: ##--> Hauptpunkt #-> Unterpunkt # BehindCodeComment @Kai: Du übersiehst aber was: Er Splittet die Texte bei den Leerzeichen, sprich überprüft Wort für Wort - da sollte nicht das halbe Forum drunter leiden. Die seltsame Syntax des Regex kommt daher, dass ich mir Regexe nicht selbst schreibe, sondern mit einem Script/Tool selbst zusammenbastel. Da verhinden die Klammern viele Fehler bzw. viele Zusatzabfragen. Ich arbeite sehr viel damit, da ist das selbst schreiben unproduktiv - schnell die 100 und mehr Zeichen zusammengeklickt und fertig. Trotzdem weiß ich nicht, wieso man den Namen filtert... Ein paar Sätze bzgl. der Inanspruchnahme und der freien Meinungsäußerung würden's doch auch tun? Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 Jo,dann friss mal, ich hab's verstanden. Sorry bin halt Programierer Programiere sind ausgenommen :D Aber beim Treffen tue ich es Trotzdem :nod: Zitieren
logi Geschrieben 15. April 2011 Geschrieben 15. April 2011 Programiere sind ausgenommen :DAber beim Treffen tue ich es Trotzdem :nod: Gut, dann bin ich Consultant und du nimmst anstatt dem Apfel einen Besen ;-) Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 Und genau deswegen habe ich Apfel statt Besen gesagt Zitieren
Wolf Geschrieben 15. April 2011 Geschrieben 15. April 2011 Verstanden habe ich das auch, bin ITler.. :devil: Aber ich habs nicht so mit Web-Apps und Programmierung. Eher mit Hardware, Problemlösung, Administration, virtuellen Maschinen, bald Mikrocontrollerprogrammierung und so weiter.. Darum steht hier auch ein nettes kleines Board mit 2 x Hexacore-Xeons, 24 GB RAM usw. links vor mir. :devil: Könnte ja bei Gelegenheit einmal ein paar Fotos von dem Teil machen, ist aber immer noch nur Testplattform, weil die Wasserkühlung sich bei dermaßen exklusiven Boards (EVGA Super Record 2 Classified) zum Problem entwickelt (entweder zweiteilig oder ein besch****ner einteiliger Kühler, hoffe, dass eine Auftragsfertigung das Problem löst). Bei dermaßen vielen Projekten muss einiges halt langsamer voran gehen, geht leider nicht anders. Der Tag hat nur 24 Stunden.. Ach btw, ich soll den armen, aaarmen Julian bei seiner Scheiss-Smiley-Protestaktion (also dem Smiley auf dem Pott) unterstützen. Also mache ich das mal: Rettet die Scheisssmileys! Embed more white pots! Kai for President! Ach ja, ein Tittensmiley wäre auch nicht schlecht. Fällt mir gerade so ein.. Distracting Animation oder so.. :devil: Viele Grüße, Wolf Zitieren
Wolf Geschrieben 15. April 2011 Geschrieben 15. April 2011 @Julian: Ich hoffe mal, das war so, wie du dir das vorgestellt hast? :devil: Wenn nicht: Auch egal! :pizza: Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 (bearbeitet) @Julian: Ich hoffe mal, das war so, wie du dir das vorgestellt hast? :devil: Wenn nicht: Auch egal! :pizza: Ist ganz aktzeptabel gewesen aber noch ausbaufähig :thumbsup: Naja danke für deine Mitarbeit belohnung ist unten Und danke ich habe mich schrott gelacht über den Satz : PS:Zensiert bearbeitet 15. April 2011 von Julian Zitieren
Kai Geschrieben 15. April 2011 Geschrieben 15. April 2011 @Kai: Du übersiehst aber was: Er Splittet die Texte bei den Leerzeichen, sprich überprüft Wort für Wort - da sollte nicht das halbe Forum drunter leiden. Die seltsame Syntax des Regex kommt daher, dass ich mir Regexe nicht selbst schreibe, sondern mit einem Script/Tool selbst zusammenbastel. Da verhinden die Klammern viele Fehler bzw. viele Zusatzabfragen. Ich arbeite sehr viel damit, da ist das selbst schreiben unproduktiv - schnell die 100 und mehr Zeichen zusammengeklickt und fertig. Das Tool/Script bastelt da nix gutes :-) Lern lieber reguläre Ausdrücke. Wenn du dich mit Regex ne Weile beschäftigt hast und das kann ich nur empfehlen, dann kann von Unproduktivität keine Rede mehr sein, im Gegenteil!! Stimmt die Textsplittung hatte ich übersehen, hab den Code nur kurz überflogen und da ist mir der Regex ins Auge gesprungen Elegant und vor allem skalierbar ist der Code nicht. $text nochmal komplett in nem array ... dann foreach und nochmal ne Variable... trim ... Das ist alles unnötiger Overhead. Klar tut's erstmal aber so Code ist der Grund weshalb immer mehr Ram und CPU gebraucht wird. Wortanfang und Ende kann man auch im regulären Ausdruck formulieren was die Schleife und alles drumherum überflüssig macht. () sollte man weglassen wenn man es nicht braucht, frisst Speicher in der regex-engine und das kann ganz schön viel werden. Die Engine merkt muss sich auch merken wo die Treffer waren denn das was in Klammer steht kann später nochmal matchen und muss dann solange im Speicher gehalten werden bis am Ende das Endgültige Ergebnis feststeht. (schlecht erklärt ich weiß) Wenn du am Anfang der Runden Klammern ?: schreibst merkt sich die Regex-engine den Inhalt nicht (?:e) zum Beispiel. Wenn man zb eine Oder-Entscheidung Gruppieren muss (der|die) dann braucht man der oder die ja nicht als Referenz, schreibt man (?:der|die) hat man genau was man will. Muss jetzt los... Den Kackhausgrinsekopf gibt's morgen, da hat Julian Geburtstag :peace: Zitieren
Julian Geschrieben 15. April 2011 Geschrieben 15. April 2011 Fals du mich mit Julia meinst,ich heiße immernoch Julian Danke fürs verbesser :thumbsup: Zitieren
Empfohlene Beiträge
Tritt dem Gespräch bei
Du kannst jetzt posten und dich später registrieren. Wenn du bereits einen Account hast kannst du dich hier anmelden.