Wenn Buchste in Wort, dann Wort entfernen

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

  • Wenn Buchste in Wort, dann Wort entfernen

    Hi Leute,

    ich muss aus einem text (sagen wir in der variablen $text) alle wörter herausfiltern, in denen ein bestimmter buchste oder ein bestimmtes zeichen vorkommt.

    Also:
    $text = 'Hallo ich bin's !';
    daraus soll dieses zeichen --> ' <--- und das dazugehörige wort gelöscht werden.
    es soll also folgendes rauskommen:
    "Hallo ich !"

    ich weiß da leider nicht weiter. könnt ihr da helfen
    arrays sind klasse

  • #2
    ganz schnell drüber nachgedacht (also gar nicht) würde ich folgendes machen:

    1. explode nach ' '
    2a. for-schleife geht das array durch
    2b. if(!strstr($zeichen))
    3c. $text.=$aktuelles wort

    Kommentar


    • #3
      So auf die Schnelle würde ich das auch so machen.

      Aber noch eine Frage.
      Was ist, wenn: $text = "Hallo ich bin's wieder"
      Soll dann rauskommen "Hallo ich" oder "Hallo ich wieder"?
      if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

      Kommentar


      • #4
        das kann man doch bestimmt besser über einen regex machen.

        mir fällt nur grad auch nciht ein wie... aber es geht bestimmt besser....
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Code:
          preg_replace('/( [\w]+\\'[\w]+ )/i',' ',$text);
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            so hatte ich mir das vorgestellt...
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              @abrax war klar Dachte mir bevor Ihr alle noch weiter ratet und filosofiert...
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Original geschrieben von mrwhorf
                So auf die Schnelle würde ich das auch so machen.

                Aber noch eine Frage.
                Was ist, wenn: $text = "Hallo ich bin's wieder"
                Soll dann rauskommen "Hallo ich" oder "Hallo ich wieder"?
                Es soll dann "Hallo ich wieder" rauskommen.

                ich konnte es noch nicht herausfinden, wie es geht
                arrays sind klasse

                Kommentar


                • #9
                  Dann sollte das preg_replace von MelloPie genau das richtige machen.
                  if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

                  Kommentar


                  • #10
                    ich werde daraus nicht schlau.
                    was ist, wenn mein zeichen dieses hier ist: --> [ <-- ?
                    arrays sind klasse

                    Kommentar


                    • #11
                      dann gibst du dieses Zeichen an!!!

                      BTW @haxe und mello: Ich wollte auch lieber ne regex, aber da hätte ich nachdenken müssen. Und das ist heute im Forum irgendwie voll unüblich. Ergebnis war ja das gleiche.

                      @maranello: wenn du dich mal mit dem code beschäfftigt hättest, wäre klar gewesen was dabei rauskommt.

                      Kommentar


                      • #12
                        Warning: No ending matching delimiter ']' found ...
                        erscheint bei :
                        preg_replace('[',' ',$text);

                        arrays sind klasse

                        Kommentar


                        • #13
                          wunderts dich???

                          wenn du dich mit dem beschäfftigst, was du machst, merkst du dass [ wie auch z.B. / oder % sogennannte delimiter sein können.

                          Also: Escape das Zeichen!
                          EDIT:
                          wenn du wirklich das machen willst, was du grade mit preg_replace('[',' ',$text); versuchst, dann nimm str_replace()
                          Zuletzt geändert von TobiaZ; 27.09.2003, 18:27.

                          Kommentar


                          • #14
                            Original geschrieben von MelloPie
                            @abrax war klar Dachte mir bevor Ihr alle noch weiter ratet und filosofiert...


                            ich hatte auch schon abgefangen einen regex zu basteln, bin dann aber leider hängengeblieben...
                            und ich wusste ja, dass du kommen wirst...
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              ich hab es jetzt mal so probiert:

                              $plode = explode(' ',$text);

                              foreach ($plode as $wort) {
                              If (substr($wort,0,1) == "[") { $wort = ''; }
                              $texts .= $wort.' ';
                              }

                              echo $texts.' <br><br><br>
                              ';
                              dabei sollen alle wörter, die mit [ beginnen rausgenommen werden... so dachte ich, aber dieser code macht was gang anderes:
                              ich führe ihn in einer while-schleife aus und die texte werden aus einer datenbank gelesen.
                              angezeigt werden auch die gewünschten texte, aber völlig falsch. es wird jeweils das erste wort eines textes rausgestrichen und die [ - Wörter sind alle noch drin. zudem wiederholen sich alle texte und bei jedem durchgang durch die erste schleife wird einfach der alte text ausgebracht mit dem neuen direkt hinten dran (okay - schwer zu beschreiben ).
                              jedenfalls kann da was nicht stimmen.
                              arrays sind klasse

                              Kommentar

                              Lädt...
                              X