string zerlegen probleme, denkfehler ?!

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

  • string zerlegen probleme, denkfehler ?!

    hallo gemeinde, ich hab einen string und möchte den vorderen teil bis zu einem bestimmten teil im string abschneiden, anschliessend ab ner bestimmten stelle bis zum schluss abschneiden. meine bisherigen lösung funktioniert zwar, aber kann sich die länge des strings ändern und da hab ich eben ein problem, weiss nicht wie ich das lösen soll, bastel da nun schon seit tagen mit sämtlichen string-funktionen rum. hat jemand nen tipp?

    Code:
    <?php
    $data = "ganz ganz langer string";
    
    $count = strpos($data,"</H2>");
    $count = $count + 64;
    $text = substr($data, $count);
    
    $textx =substr($text, 0, -158);
    
    //$text = substr_count($data,"</H2>");
    //$text = substr($data, 1079, 3225);
    
    $textx = utf8_decode($textx);
    echo $textx;
    ?>

  • #2
    Hallo,

    bitte konkretisier doch das Problem mal mit einem Beispielstring. Wenn das was du hinten abschneiden willst, eine unterschiedliche Länge hat, muss es ja einen bestimmten Substring geben, an dem du erkennst, dass ab dort alles weg kann. Diese Stelle kannst du wieder mit strpos oder strrpos ermitteln. Eventuell lohnt es sich auch, sich mal mit Regulären Ausdrücken zu beschäftigen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      ich denke das er auch probleme mit MultiByte hat...

      da er am Schluss, alles zu ISO-8859-1 Konvertiert...
      das heißt für mich die Daten liegen in UTF-8 vor...weshalb es schon mit substr usw. Probleme gibt... (Umlaute/Sonderzeichen etc.)

      Kommentar


      • #4
        ich lese ne webseite aus und vor und nach dem text den ich brauche ist zeugs das ich ned brauche unter anderem vor dem text ein image und danach auch. da sich die textlänge aber evtl. ändert kann ich das so wie ich das gemacht habe, eben leider nicht machen denke ich.

        sollte ich vorher die codeumwandlung machen? meine webseite ist im ISO-8859-1 format und die daten der anderen webseite eben im UTF-8

        Kommentar


        • #5
          besser wäre das, oder du musst auf diese Funktionen zurückgreifen:
          PHP: Multibyte String Functions - Manual

          Gruß
          Gunah

          Kommentar


          • #6
            Das Problem im Allgemeinen war verständlich und eine allgemeine Antwort hast du bereits erhalten.

            Wenn du konkrete Hilfe möchtest:

            Zitat von AmicaNoctis Beitrag anzeigen
            bitte konkretisier doch das Problem mal mit einem Beispielstring.
            Zitat von mikkes Beitrag anzeigen
            sollte ich vorher die codeumwandlung machen?
            Ja.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              na was nützt es denn wirklich wenn ich den string poste, kann ich nicht, denn ich lese mit file_get_contents ne url aus und in dem string sind dann die daten und da möchte ich eben nur das rausschneiden was ich brauche, bzw. das was ich nicht brauche vorne und hinten weg

              kuckst du hier: http://bergwetter.alpenverein.de/gesamtalpen_dav.html, diese webseite lese ich aus und da möchte ich den ersten teil bis ALPENWETTER löschen und dann das bild unten
              Zuletzt geändert von mikkes; 12.10.2009, 14:30.

              Kommentar


              • #8
                Zitat von mikkes Beitrag anzeigen
                na was nützt es denn wirklich wenn ich den string poste
                Das nützt dir insofern, dass man dir dann konkret helfen könnte:
                PHP-Code:
                    $contents file_get_contents("http://bergwetter.alpenverein.de/gesamtalpen_dav.html");
                    
                $parts preg_split("#<H2>ALPENWETTER</H2>|<img#"$contents);
                    
                $text = isset($parts[3]) ? trim($parts[3]) : ""
                oder auch so, das ist noch ein bisschen schneller:
                PHP-Code:
                    $contents file_get_contents("http://bergwetter.alpenverein.de/gesamtalpen_dav.html");
                    
                $parts explode("<H2>ALPENWETTER</H2>"$contents2);
                    
                $text = isset($parts[1]) ? trim($parts[1]) : "";
                    
                $parts explode("<img"$text2);
                    
                $text trim($parts[0]); 
                Zuletzt geändert von AmicaNoctis; 12.10.2009, 14:42.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  ah, es funzt! vielen dank für die hilfe! auf die lösung wär ich ja nie gekommen!

                  Kommentar


                  • #10
                    Ich habe per SuFu einen passenden Threa gefunden und hole ihn deswegen mal hoch... Ich hoffe man vergibt mir...

                    Ich benötige im Prinzip exakt das gleiche, nur irgendwie krieg ich das nicht hingefummelt

                    Zum Problem:
                    Ich habe einen String mit variabler Länge, z.B.
                    PHP-Code:
                    $string 'Dies ist der Text mit meinem Suchbegriff der aus der Datenbank kommt' 
                    Über ein Eingabefeld gebe ich dem User eine Mgl. nach einem Wort in diesem String zu suchen. Nehmen wir an, der User will den String nach dem Wort "Suchbegriff" suchen. Er gibt es ein und ich nehme den Suchbegriff entgegen. Um diesen farblich hervorzuheben fürge ich ein wenig Code der Variable $suchbegriff hinzu, es ergibt sich folgender Code:
                    PHP-Code:
                    $suchbegriff '<span style="background-color:#FF0000;"><font color="#FFFFFF"><b>'.$_suchbegriff.'</b></font></span>' 
                    Jetzt möchte ich den String so beschneiden, dass ich VOR und NACH $suchbegriff 5 Zeichen ausgebe, alles andere soll weggeschnitten werden. Am Ende möchte ich also folgenden Wert in der Variable $string stehen haben:
                    PHP-Code:
                    $string 'inem Suchbegriff der '
                    Der Suchbegriff sollte jetzt farblich hervorgehoben sein und jeweils 5 Zeichen links und rechts davon mit ausgeben - der Rest fliegt raus...

                    Ich fummel hier hin und her und irgendwie seh ich grad den Wald vor lauter Bäumen nicht. Ich glaube das ist zu trivial um selbst drauf zu kommen

                    Kann mir jemand helfen? Vielen Dank

                    Kommentar


                    • #11
                      Hallo,

                      woran scheitert es denn? Kennst du strip_tags schon?

                      Gruß,

                      Amica
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Zitat von Dampfi Beitrag anzeigen
                        PHP-Code:
                        $string 'Dies ist der Text mit meinem Suchbegriff der aus der Datenbank kommt' 
                        ...
                        PHP-Code:
                        $suchbegriff '<span style="background-color:#FF0000;"><font color="#FFFFFF"><b>'.$_suchbegriff.'</b></font></span>' 
                        hm ... da ist doch alles was du brauchst ..
                        PHP-Code:
                        $test=substr($string,strpos($string,$_suchstring)-5,5).$suchbegriff.
                                     
                        substr($string,strpos($string,$_suchstring)+strlen($_suchstring),5);
                        // der Teilstring beginnt an der Fundstelle - 5 Zeichen ...+ die 5 Zeichen
                        //... dann wird statt des ursprünglichen Suchbegriffs deine formatierte variante genommen
                        // und am ende die 5 Zeichen angehängt, die in deinem Text nach dem Suchbegriff folgen 
                        Zuletzt geändert von eagle275; 22.06.2010, 07:13.
                        [font=Verdana]
                        Wer LESEN kann, ist klar im Vorteil!
                        [/font]

                        Kommentar

                        Lädt...
                        X