*heul* bestimmte Wörter aus Text filtern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • *heul* bestimmte Wörter aus Text filtern

    Seit Heut Nacht........

    Also ich will nen Badword Filter basteln(Böse Wörter zensieren). Das kuriose ist, lokal hat es nach ein paar Minuten sofort hingehauen. Nur nachdem ich es auf den server geladen hab kommt folgene Fehlermeldung:
    ------
    Warning: The length of the needle must not be 0 in /home/coolspire/public_html/obb/lib.inc.php on line 321
    ------

    Ich verstehe das nicht...
    Hier mal mein Code den ich mir geschrieben hab:
    ------
    $datei = $settings_pfad . "/badword.txt";

    $fp = fopen( $datei, "r");
    while(!feof($fp))
    {
    $zeile = fgets($fp, 1024);
    $zeile = chop($zeile);
    $wort = explode("=",$zeile);
    $finden = $wort[0];
    $ersetzten = $wort[1];

    $_message = str_replace($finden, $ersetzten, $_message); <- Zeile 321

    }
    fclose($fp);

    echo $_message;
    ------

    Also die Datei wird zeilenweise in der schleife ausgelesen. Dabei wird der Text der in "$_message" ist überprüft. Die Wörter stehen wie folgt in der Datei: Wort=W**t. Bei = werden sie gesplittet. Ich verstehe das nicht. Lokal wunderbar auf anhieb und auf dem server funzt net. Mit ereg_replace bzw eregi_replace will es auch net funzen. Man Stunden sitz ich hier ! und es ist bestimmt nur nen kleener Fehler..... Hat jemand mal einen Tip ??

    Mfg Frosty
    My New Projekt: P²Board
    Designer im Team gesucht !

  • #2
    anscheinend bekommt $finden (durch was auch immer) seinen inhalt nicht... mach ein paar debug-zeilen à la "echo $finden;" rein, bevor du die replace-funktion aufrufst.

    CAT Music Files

    Kommentar


    • #3
      Morgen, *gähn*

      Das ist ja nicht das Problem. Bzw. So weit kommt es ja esrt garnicht. Mit der variable $_message scheint hier irgendwie das Problem zu sein. $finden und $ersetzten gibt es ja. Der fehler taucht ja wie gesagt erst in Zeile 321 auf wo die Zeichenkette durchsucht und die Wörter "$finden" durch "$ersetzten" ersetzt werden sollen. Irgendwie kommt er damit nicht klar.......

      Verdammt dat muß doch gehen.....

      Mfg
      My New Projekt: P²Board
      Designer im Team gesucht !

      Kommentar


      • #4
        hmm,

        also needle ist das erste Argument und dieses scheint leer zu sein, zumindestens sagt das diese Meldung, schau dir mal die Variable $finden an.

        Kommentar


        • #5
          Die Fehlermeldung sag nicht dass die 'needle' 0 ist, sondern..
          das du gewährleisten mußt das sie NICHT 0 ist.

          Jetzt ist nur die Frage was die 'needle' ist..dann setzt du da ne sicherheitsabfrage hin, die die zeile übergeht wenn die 'needle' 0 ist.

          Kommentar


          • #6
            Hallöchen KinNeko,

            Ja das kommt der sache schon näher. needle ist ja in dem fall $finden. Wie gesagt die variable $finden enthält den wert der vor dem "=" steht. bei ausgabe: echo "$finden<br>"; wird mir immer das erste Wort jeder zeile untereinander ausgegeben. So nun läuft die Schleife aber genau noch 2 mal weiter. Und in dem Fall enthält die letzten 2 durchläufe $finden = 0. Daher kommt dann wohl die Fehlermeldung.
            Hm wie kann ich jetzt verhindern das die schleife die letzten 2 mal durch läuft wo ja dann $finden = 0 ergibt ??
            My New Projekt: P²Board
            Designer im Team gesucht !

            Kommentar


            • #7
              mit einer if anweisung..if ($finden<>0) usw..
              ..habe lange kein php programmiert..und delphi syntax ist etwas anders
              da du $finden den wert in der schleife zuordnest kannst du die schleife nicht abbrechen..du kannst nur die anweisung, die den fehler verursacht verhindern => ineffizent aber sollte funzen


              Habe deine Arbeitsweise aber nicht genau verstanden. Hätte alle Badwords in eine Datenbank eingetragen..bin halt datenbank fan

              ausserdem bin ich gegen badword filter..vorallem welche die mit teilstring arbeiten..die verursachen eh nur nebeneffekte die keiner will und umgehen kann die auch jeder

              hmm..wie wäre ein badword filter der leerzeichen ignoriert und bei einer bestimmten zeichenkette einfach einen link zu diesem thread an den moderator schickt ? der kann dann den inhalt manuell überprüfen.. dann wären eingaben wie 'a r s c h' nicht möglich..aber bekomm erst mal dein problem in den griff

              [Editiert von KinNeko am 22-10-2001 um 05:42]

              Kommentar


              • #8
                Hi,

                Naja der Filter ist für ein Board welches auf .txt Datei basiert. Der Filter wurde auch nur von ein paar User gewünscht und daher versuchte ich es. Nur was mich ein wenig verblüft, das Lokal der Filter funzt. Tadellos. Nur nachdem ich es auf den Server geladen hab, funzte es net mehr ........ ?!

                Eine if anweisung hatte ich ja auch probiert.
                if($finden !== "0"){
                $_message =str_replace.....
                }

                Nur dann wurden die Wörter nicht mehr ersetzt......
                Maaannn

                Titus ?! hast du da nicht mal ne Itze ? Biiiittttääääää
                Ich hab keine Ideen mehr Gibt es nicht vieleicht eine andere Lösung für sowas ? 2 Tage und es will net gehen....
                My New Projekt: P²Board
                Designer im Team gesucht !

                Kommentar


                • #9
                  Oh man, Problem gerafft. Konnte natürlich hier keiner sehen.

                  Ich hab die Wörter falsch in die Datei geschrieben. definiert in $badwords. und in die Datei geschrieben hab ich es so: fwrite($fp, $badwords\n"); durch \n hab ich zuviel Leerräume in die Datei geschrieben und daher ist die while schleife zu weit gelaufen, so das $finden um schluß leer war. Und das verursachte die Fehlermeldung. Man ist das ein fehler........

                  Trotzdem Dank für die Hilfe
                  Mfg Frosty
                  My New Projekt: P²Board
                  Designer im Team gesucht !

                  Kommentar


                  • #10
                    und damit man das Topic auch wieder findet ...

                    ... hat´s jetzt einen Namen der sagt was drin steht
                    mein Sport: mein Frühstück: meine Arbeit:

                    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                    Kommentar


                    • #11
                      Au Backe. ich werd mich bessern. *aufknienfall*

                      Mfg
                      Oh fein das jetzt alles wieder links ist
                      My New Projekt: P²Board
                      Designer im Team gesucht !

                      Kommentar

                      Lädt...
                      X