RuD: und mysql: Zeilenumbruch/Space eliminieren

Hallo,
ich habe folgendes Problem:
ich lese ne (fremde, nicht auf meinem Server) HTML-Seite ein, zerlege die in einzelne Teile, schmeiss alles raus, was ich nicht brauch, danach loesche ich alle Tags, und schliesslich zerlege ich nochmal, aber diesmal in einzelne Worte mit Separator Leerzeichen, nicht das HTML-erzwungene-Leerzeichen.

Nun ist mir aufgefallen:
1. leider sind zwischen manchen Worten mehr als ein Leerzeichen und ich bekomme in mein Ergebnis: wort1,wort2,wort3, , , ,wort4 oder so aehnlich.

--> Kann man z.B. im noch nicht in Worte zerlegten Ausgangsstring evtl.  alle mehreren Leerzeichen hintereinander in nur eines umwandeln?

2. Ausserdem habe ich das Gefuehl, dass sich noch andere Zeichen, die ich nicht will, rumtuemmeln. Ich denke da an \n oder \r. Kann man die auch irgendwie loeschen? Am besten auch im noch nicht zerlegten Ausgangsstring.

So a la:

$erg=str_replace('-', '', $erg);  aber halt mit den anderen Zeichen

Danke.

  1. hi,

    $erg=str_replace('-', '', $erg);  aber halt mit den anderen Zeichen

    Hast du es mit "anderen Zeichen" versucht?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi wahsaga,

      Hast du es mit "anderen Zeichen" versucht?

      Tuerlich habe ich das aber am Ende im Array (String zerlegt) habe ich Eintraege, die ich mir nicht erklaeren kann: wie z.B. wort, , ,,, ,wort

      RuD

      1. echo $begrüßung;

        aber am Ende im Array (String zerlegt) habe ich Eintraege, die ich mir nicht erklaeren kann:

        Es ist durchaus üblich zwecks Fehlerfindung sich auch mal Ergebnisse von Zwischenschritten anzeigen zu lassen: echo, var_dump() usw.

        echo "$verabschiedung $name";

    2. NACHTRAG:

      wie kann ich eine variable Menge von Leerzeichen/Zeilenumbruechen angeben.
      ich kann ja nicht so tun:

      $erg=str_replace(' ', '', $erg);
      $erg=str_replace('  ', '', $erg);
      $erg=str_replace('   ', '', $erg);
      $erg=str_replace('    ', '', $erg);
      .
      .
      .

      oder halt
      $erg=str_replace('/n', '', $erg);
      $erg=str_replace('/n/n', '', $erg);
      $erg=str_replace('/n/n/n', '', $erg);
      $erg=str_replace('/n/n/n/n', '', $erg);
      .
      .
      .
      .

      wo soll dass enden???

      1. Hello,

        wo soll dass enden???

        in einer Schleife.

        Aber bedenke, dass auch mein Beispiel mit Schleife durchaus Optimierungen kennt.
        Wenn es nun wirklich ' ' und '   ' und '        ' und '                    ' usw.
        geben würde, könnte man da Marken setzen. das bedeutet, dasss man zuvor eine Schleife zur Beseitigung der gröbsten Störungen benutzt, dann eine zur beseitigung der feineren und dann zum Schluss erst eine zur Beseitigung aller Reststörungen.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

  2. Hello,

    --> Kann man z.B. im noch nicht in Worte zerlegten Ausgangsstring evtl.  alle mehreren Leerzeichen hintereinander in nur eines umwandeln?

    Dazu müsste man wissen, ob es #032 (dezimal) sind oder aber sogenannte Whitspaces. Und bei HTML-Ausgangsbasis kämen auch noch die   und ihre Spielarten (numerische Angaben) hinzu.

    Wenn es nur normale Leerzeichen sind, hilft eine Schleife:

    while (strpos($text,'  ') !== false)
      {
        $text = str_replace('  ',' ',$text);
      }

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau