Wenn Buchste in Wort, dann Wort entfernen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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"; }

      Comment


      • #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 |


        Comment


        • #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

          Comment


          • #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 |


            Comment


            • #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

              Comment


              • #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

                Comment


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

                  Comment


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

                    Comment


                    • #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.

                      Comment


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

                        arrays sind klasse

                        Comment


                        • #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()
                          Last edited by TobiaZ; 27-09-2003, 19:27.

                          Comment


                          • #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 |


                            Comment


                            • #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

                              Comment

                              Working...
                              X