string zerlegen

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

  • string zerlegen

    ich habe folgendes problem:

    ich habe einen string der folgendermaßen aufgebaut ist:

    PHP-Code:
    $sting '12:00 Party in der Eckkneipe blabla 14:00 Singleparty im blabla....'
    (wobei die punkte für fortsetzung stehen )

    nun möchte ich aus diesem string ein array basteln das ungefähr so ausschaut:

    PHP-Code:
    array[0] = $zeit;
    array[
    1] = $text
    natürlich in einer schleife gebettet.... nur habe ich ehrlich gesagt echte probs wie ich ihm beibringen soll dass der string halt vom format $zeit - $text aufgebaut ist und bei jeder zeitangabe ein neues paar daten entsteht.

    wäre für hilfe bzw. anregungen dankbar

    greets

  • #2
    preg_match_all() oder preg_split() sind deine freunde ... das tutorial zu
    den regulären ausdrücken ist auch ganz hilfreich.
    Kissolino.com

    Kommentar


    • #3
      okay, habe etwas rumgebastelt, glaube stehe kurz vor der vollendung. nur habe ich mit den sonderzeichen und umlauten ein problem.

      in dem string tauchen auch solche zeichenketten auf:

      PHP-Code:
      $string='12:30 Blackmusicparty: R'n'B / Hiphop mit DJ Kröte'
      so sieht mein "zerleger" aus:

      PHP-Code:
      $num preg_match_all('/(\d{1,2}:\d{2})\s*[\.a-z0-9- ]+/i'pstring$match); 
      der auch schon ganz gute arbeit leistet... welche zeichen kommen nun in den zweiten pattern damit er auch umlaute bzw. sonderzeichen in den strings zuläßt und nicht den string dort abbricht.

      THX

      Kommentar


      • #4
        Ähm ... du kannst mit \xHexCode die Sonderzeichen in die Liste aufnehmen.

        Kommentar


        • #5
          okay das prob habe ich anders gelöst, wandle im string vorher die umlaute einfach in ascii-codes um.

          jedoch stimmt was mit den zeiten nicht. kann sich jemand den ersten pattern mal anschauen, irgendwie klappt das nicht wirklich. habe jetzt:

          PHP-Code:
          $num preg_match_all('/(\d{1,2}:\d{1,2})\s*[\.a-z0-9- %&~.,;<>]+/i'$p3$match); 
          die zahlen in den schleifen hinter dem d geben doch die stellen an, oder ?

          der pattern soll also hh:mm zulassen..

          Kommentar


          • #6
            Re: string zerlegen

            Original geschrieben von tedman72
            ich habe folgendes problem:

            ich habe einen string der folgendermaßen aufgebaut ist:

            PHP-Code:
            $sting '12:00 Party in der Eckkneipe blabla 14:00 Singleparty im blabla....'
            (wobei die punkte für fortsetzung stehen )

            nun möchte ich aus diesem string ein array basteln das ungefähr so ausschaut:

            PHP-Code:
            array[0] = $zeit;
            array[
            1] = $text
            natürlich in einer schleife gebettet.... nur habe ich ehrlich gesagt echte probs wie ich ihm beibringen soll dass der string halt vom format $zeit - $text aufgebaut ist und bei jeder zeitangabe ein neues paar daten entsteht.

            wäre für hilfe bzw. anregungen dankbar

            greets
            ehrlich gesagt, kann ich mir schon denken wie das zu stande kommt!
            sicherlich trägst du das in eine datenbank ein und liest sie auch wieder aus der datenbank! wenn dem so stimmt.. oh mein gott..

            andernfalls musst du eben gucken, dass es bei jedem event ein bestimmtes unverwechselbares zeichen entsteht ( hinzufügt ) z.b. ;.-

            dann explode() und implode() verwenden..

            PHP-Code:

            $trennen 
            explode(";.-",$string);

            $fertig implode('<br>',$trennen);

            echo 
            $fertig
            WIE kommt dein String zustande???

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #7
              ich beziehe partyinformationen von einer internetseite. ich habe die freigabe die daten von der seite zu beziehen, jedoch darf ich nicht die datenbank connecten.

              ich hole mir also die ganze htmlgeschichte in einen string, den unwichtigen kram rausgefiltert und per strip_tags den html-quatsch rausgeschmissen.

              ich habe gestern noch ne weile daran rumgebastelt, stelle mich aber zu blond an um ordentliche patterns zusammen zu bekommen. irgendwann war es ja ganz okay, da ich aber diverse sonderzeichen zulassen mußte zieht er noch in den
              PHP-Code:
              array[$text
              die ersten zwei ziffern der uhrzeit vom neuen partystring. das teil sieht im moment so aus:

              PHP-Code:
              $num preg_match_all('/(\d{1,2}:\d{1,2})\s*[\.a-z-0-9 %&~.,:;<>]+/i'$p1$match); 
              wenn ich im zweiten pattern die zahlen oder den ":" rausnehme fehlen mir auch einige infos da im $text-bereich halt auch dinge wie "DJ's heute Abend: DJ 1, DJ2, DJ a...." vorkommen.

              ich muß auch gestehen das ich mich immer vor diesem replace und preg-kram gedrückt habe

              mir ist dann noch ein weiterer ansatz aufgefallen:
              im html-code der seite baut sich ein party-datensatz immer wie folgt auf:

              PHP-Code:
              <span blabla>textbaustein 1<br>textbaustein 2<br>textbaustein 3<br></span
              bin die ganze zeit am überlegen ob es sorum nicht sinnvoller ist das ding zu zerlegen, da fällt mir aber im moment auch kein lösungsansatz ein. explode bzw. implode ziehen da ja mit einem separator nicht... bin schon langsam am verzweifeln.

              Kommentar


              • #8
                - hol dir einfach den block:
                PHP-Code:
                <span blabla>textbaustein 1<br>textbaustein 2<br>textbaustein 3<br></span
                mit einem preg_match()
                - mach ein explode() auf das <br>
                - im array-durchlauf wendest du strip_tags() an und zerlegst die arraywerte mit einem weiteren preg_match() in die uhrzeit & den text
                Kissolino.com

                Kommentar

                Lädt...
                X