Daten verarbeiten mit curl

  • Hallo zusammen,


    ich arbeite das erste Mal mit curl und weiß nicht genau, wie ich am besten die daten verarbeiten soll. Also ich lese mittels curl eine csv von einer url aus. das funktioniert soweit auch einwandfei.



    ich bekomme nun folgende ausgabe:


    Code
    Status;SubID 0;"243" 0;"244"


    soweit alles gut. das sind genau die daten, die ich haben will. allerdings weiß ich jetzt nicht so genau, wie ich damit arbeiten soll, da die datensätze in einen string komplett hintereinander geklatscht werden. ich hatte gehofft die daten mit curl in ein array auslesen zu können, um dies dann zeilenweise abarbeiten zu können.


    Code
    Status;SubID
    0;"243"
    0;"244"


    eigentlich sollte es ja so aussehen. es handelt sich ja um eine reihe von datensätzen. in einem array könnte man, diese datensätze nun einfach durchlaufen und mit der datenbank abgleichen. ich habe allerdings keine curl-funktion gefunden, die mir die daten direkt in ein array schreibt.


    würde mich über hilfe freuen. danke


    gruß
    knuff

  • Hatten wir letztens was ähnliches: Textdatei mit Formular durchsuchen und bestimmte Zeile ausgeben
    Kannste ja mal reingucken, dann brauch ich nicht aller nochmal schreiben :D


    ODER:
    Wenn Du Einfluss auf die Quelle hast, dann kannst Du die Daten (wenn array) dort per json_encode($array) in einen Json-String wandeln.
    Per curl bekommst Du dann diesen formatierten String und kannst in wieder in ein array "umwandeln" via json_decode($array, true).


    Kommt denn sehr viel an Daten, oder?

  • ich habe keinen einfluss auf die quelle und ja es kommen sehr viele daten.


    das einzige was mir bisher einfällt ist den string mit explode in ein array umzuwandeln. aber hier habe ich ja zeilen und spalten, also muss in ein mehrdimensionales array umgewandelt werden. explode kann ja immer nur ein trennzeichen. da muss man dann mit schleife ran und so. ich hab gehoft es gibt eine elegantere lösung?


    gruß
    knuff


  • wenn ich das richtig verstehe brauche ich dafür die csv datei. allerdings habe ich die csv datei nicht. ich hole mir die daten mittels curl von einer .aspx url und curl gibt mir die daten direkt als string in einer variablen zurück. die daten sind allerdings im csv format und vielleicht kann curl diese auch als csv datei speichern. das weiß ich nicht, weil ich wie gesagt das erste mal mit curl arbeite, aber ich möchte es auch gar nicht speichern, sondern quasi direkt "on the way" verarbeiten.


    soweit ich das sehe ist dann explode wohl doch die beste möglichkeit oder übersehe ich etwas?


    gruß
    knuff

  • str_getcsv() ist warsch. besser und du kannst dir evtl curl sparen (ich weis nicht ob file() serverübergreifend funzt, denke ja)
    Abgewandeltes beispiel von PHP.net (Der von Cotton gepostete Link)

    PHP
    $array = array_map('str_getcsv', file('http://deineZielDomain.de/data.csv'));
    print_r($array);

    :)

  • vielen dank für alle eure antworten.


    ich habe mir die daten jetzt mittels explod und ner kleinen while so umformatiert, wie ich sie brauche. ich werde mir eure antworten aber bei gelegenheit genauer anschauen, ob dies bessere lösungen für mein problem sind.


    gruß
    knuff

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!