Zeichenkette extrahieren

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

  • Zeichenkette extrahieren

    Hallo,
    Ich beschäftige mich erst seit kurzem mit PHP und deshalb möge mir der ein oder andere meine Anfängerfrage verzeihen!
    Zu meinem Problem:
    Ich lese aus einer externen Datei Daten aus und möchte den erhaltenen String als Array aufteilen, um dann die empfangegen Daten in meiner Datenbank zu speichern. Mein Problem liegt nun im Extrahieren der einzelnen Passagen aus dem String. Diesbezüglich habe ich im Forum schon einiges gelesen. Allerdings konnte man - so weit ich gesehen habe - bei allen mittels "explode" den String aufteilen, weil eine ";" oder "|" regelmäßig vorhanden ist. Bei mir sieht das mittels ...

    PHP-Code:
    $fp = @fopen($datei"r") or die ("Kann Datei nicht lesen.");
    while (
    $text fgets($fp1024)) {
    echo (
    $text);
    }
    fclose($fp); 
    empfange String so aus:

    ...
    2 "NDR 2" 1 "http://www.ndr2.de"
    9 "JAM FM" 1 "http://www.jamfm.de"
    10 "Deutschland Radio Berlin" 0 "http://www.d-radio.de/"
    ...

    Mein Array soll nun vier Felder haben...
    Sender-Id, Sendername, Typ, URL

    Ich wäre dankbar, wenn mir jemand einen Tipp geben könnte, wie ich die Informationen in die einzelnen Felder bekomme!

    MfG TKlath

  • #2
    schau dir mal http://www.php.net/fgetcsv an, das könnte helfen
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ... vielen Dank für den Tipp!
      "fgetcsv" hat mir direkt nicht weitergeholfen. So habe ich mir die Datei etwas näher angeschaut und festgestellt, dass ich die (html-)Datei komplett einlesen kann und am besten mit explode("<br>",$dateiname) erst einmal in einzelne Zeilen zerlege. Anschließend wende ich nochmals explode an, um an die einzelenen Informationen des Senders zu kommen (Mit einem " komme ich an die einzelnen Informationhäppchen).
      So weit so gut - also ei guter Motivationsschub!

      Als nächstes möchte ich eine asp-Datei anstoßen, damit die mir bestimmte Informationen übergibt. Die nötigen Parameter übergebe ich mit der URL - z.B. RadiosenderID und Datum.
      So bin ich beim Stöbern in diesem Forum auf "fsockopen" gestoßen. Allerdings bleiben auch nach einem Blick auf php.net noch einige Verständnisfragen offen.

      Daher meine Bitte: Hat eventuell jemand noch Lesetipps zu dieser Materie, die das Prinzip wenn möglich mit Beispielen erläutert?

      Kommentar


      • #4
        ... nach meine ersten Erfolgen mit PHP stecke ich im moment leider etwas fest und auch die Zuhilfenahme einer Flasche Schnapps erzielte nicht die erhoffte Wirkung.
        ... vielleicht kan mir jemand einen Fingerzeig zu meinem Problem geben.

        Ich möchte die daten von einer asp-Datei abfragen und in einer Datenbank speichern.
        Beispiel-URL: http://community.clipinc.com//getStr...00&Version=121

        Hierbei ist die ChannelID die Nummer eines Radiosenders und Lastdate ein Datum.

        Bis jetzt schaffe ich es nur, dass mir diese Seite angezeigt wird. Ich möchte aber die Daten übermittelt bekommen. Diese sehen etwa wie folgt aus:

        Channel = 24
        Count = 1619
        02.03.2004 23:51:49.940 - 02.03.2004 23:55:24.930 | A-HA | Velvet | | 10
        02.03.2004 23:55:59.943 - 02.03.2004 23:59:09.950 | Crowded House | Don't Dream It's Over | | 10
        03.03.2004 00:03:54.957 - 03.03.2004 00:07:39.960 | Kurt Nilsen | She`s So High | | 10

        Ich habe schon einige Codeschnipsel aus dem Forum hier ausprobiert, aber ich bekomme die Daten einfach nicht.
        Zudem habe ich ein Programm in Java gefunden, das genau dies macht. So dachte ich, dass ich mich daran anlehnen könnte, aber wie gesagt: ich komme einfach nicht weiter.


        Hier der betreffende Schnipsel aus dem Javaprogramm:

        PHP-Code:
        public class ParserStreamTags {
          private 
        Vector tagList = new Vector();

          public 
        ParserStreamTags(String channelIdString date) {
            
        parse(channelIddate);
          }

          public 
        Vector getTagList() {
            return (
        VectortagList.clone();
          }

          private 
        void parse(String channelIdString date) {
            
        Socket socket null;
            
        PrintStream output null;
            
        BufferedReader input null;

            try {
              
        socket = new Socket("community.clipinc.com"80);
              
        output = new PrintStream(socket.getOutputStream());
              
        input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
              
        output.println("GET /getStreamTags.asp?ChannelID=" channelId +
                             
        "&LastDate=" date "+00:00:00.000&Version=121 HTTP/1.0");

              
        output.println("User-Agent: Tobit ClipInc");
              
        output.println("Host: community.clipinc.com");
              
        output.println("Pragma: no-cache");
              
        output.println("");

              for (
        int i 09i++) {
                
        input.readLine();
              }

              
        String data input.readLine();

              
        StringTokenizer st = new StringTokenizer(data">");
              
        st.nextToken();
              
        st.nextToken();
              
        st.nextToken();
              
        st.nextToken();
              while (
        st.hasMoreTokens()) {
                
        String token st.nextToken();
                
        token token.substring(0token.length() - 3);
                
        StreamTag tag = new StreamTag(token);
                
        tagList.add(tag);
              }

            }
            catch (
        UnknownHostException ex) {
            }
            catch (
        IOException ex) {
            }
            finally {
              
        output.close();
              try {
                
        input.close();
              }
              catch (
        IOException ex1) {
              }
              try {
                
        socket.close();
              }
              catch (
        IOException ex2) {
              }
            }
          }

        ... so hoffe ich auf einem Wink mit dem Zaunpfahl ...

        Kommentar


        • #5
          was soll denn aus der zeile wohin?
          => 02.03.2004 23:51:49.940 - 02.03.2004 23:55:24.930 | A-HA | Velvet | | 10
          Kissolino.com

          Kommentar


          • #6
            Hallo,
            die einzelnen Werte, also Anfangsdatum, -zeit, Enddatum, - zeit, Titel, Interpret, Album, Genre möchte ich zunächst einmal einlesen und anschliessend in einer Datenbank speichern. (wobei Album uninteressant zum Speichern ist und somit weggelassen werden kann)

            Ich denke die Werte in die DB zu speichern bekomme ich hin - aber das Auslesen ....

            Kommentar

            Lädt...
            X