string zerlegen

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

  • 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

    Comment


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

      Comment


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

        Comment


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

          Comment


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

            Comment


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

              Comment


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

                Comment

                Working...
                X