PHP Array (auf Seite) in AutoIt übernehmen

  • Hallo zusammen,
    ich würde gerne einen Array von einer Internet Seite (Ausgabe :

    PHP
    Array(
        [Protocol] => 17	hier kommt noch mehr
    )

    in Autoit laden, so dass ich da auch mit $Array[0][Protocol] zum Beispiel drauf zugreifen kann. Habe leider keinen Ansatz im Internet gefunden (Weiß auch nicht genau wonach ich suchen soll) und weiß nicht wie ich es bewerkstelligen...

    Bitte um Hilfe, ist wahrscheinlich nicht so schwer aber ich bekomme es nicht hin

    Einmal editiert, zuletzt von Scheffi (22. August 2014 um 22:56)

  • Du kannst kein Array von einer scriptsprache in eine andere einfach so übergeben.

    Wenn das Array auf der Seite genau so ausgegeben wird wie beschrieben dann lässt es sich mit den String Funktionen durchaus in ein Array in AutoIt umwandeln.

  • in Autoit laden, so dass ich da auch mit $Array[0][Protocol] zum Beispiel drauf zugreifen kann.

    AutoIt hat von Haus aus keine assoziativen Arrays (Zugriff mit Schlüsselname statt numerischen Index). Statt einem AutoIt-Array müsstest du also auf z.B. das Dicitonary-Objekt ausweichen. Oder du nimmst die aktuelle Beta - da ist der Datentyp Map enthalten welcher ein assoziatives Array in AutoIt darstellt.

    Ansonsten prinzipiell: Um Objekte zwischen Client und Server auszutauschen musst du das Objekt vor der Übertragung erst einmal serialiseren. Das heißt in ein Austauschformat wandeln was der Client versteht.
    JSON wäre ein Beispiel für so ein Austauschformat. PHP hat entsprechende Funktionen um Arrays in JSON zu überführen.
    Bei deinem AutoIt-Skript angekommen musst du den JSON-String in die entsprechende AutoIt-Entsprechung parsen.
    Es gibt zwar im englischen Forum entsprechende Funktionen - aber wie ausgereift diese sind kann ich nicht sagen. Im Zweifelsfall musst du halt selbst einen entsprechenden Parser schreiben.

  • Ist MySQL auf dem Server überhaupt vorhanden?
    Des Weiteren ist auf normalen Webservern der Zugriff auf das DBMS in der Regel nicht von außerhalb gestattet, sondern auf lokalen Zugriff (z.B. über PHP) beschränkt was eine entsprechende Verwendung ohnehin ausschließt.
    Ob es einfacher wird als JSON wage ich einfach mal zu bezweifeln obwohl ich die finalen Daten nicht kenne. Sobald da ein bisschen mehr Verschachtelung drin ist, wird es mit einer relationalen DB ziemlich eklig.
    Spontan fällt mir auch nicht sofort ein wie man das Beispiel sinnvoll so in Tabellen überführt, dass sie in AutoIt ganz einfach wieder in ihre ursprüngliche Struktur überführt werden können.
    Vielleicht zeigst du einfach mal anhand eines etwas erweiterten Beispiels wie du dies in eine DB überführen würdest und mit AutoIt wieder auslesen.
    Weiterhin ist der DB-Ansatz dahingehend problematisch, dass man die Struktur der Daten beim Auslesen vorher kennen muss.
    In wiefern die Daten in ihrer Struktur dynamisch sind weiß ich ich nicht aber mit einem Format wie JSON ist das hingegen kein Problem, da die Struktur sich aus dem String ableitet.