IPS_RunScriptEx() Array mit Arrays übergeben

Hallo,

ich habe gerade versucht IPS_RunScriptEx() ein Array mit Arrays zu übergeben, was leider nicht funktioniert.
Das Ergebnis ist folgende Warnung: „Parameter type of Parameters is not supported“

Ist das beabsichtigt, dass man keine Arrays an andere Skripte übergeben kann? Gibt es ggf. eine Alternative, wie ich es doch tun kann?

Ich möchte an ein anderes Skript mehrere gleichartige Werte übergeben, deren Anzahl ich zuvor nicht kenne. Daher würde ich diese Werte gerne in Arrays zusammenfassen und an das Skript übergeben.

Also konkret z.B.

IPS_RunScriptEx(12345, array('Ein Array' => array(1, 2, 3)));

Gruß
Slummi

IPS_RunScriptEx — IP-Symcon :: Automatisierungssoftware

as Array Parameter kann beliebig viele “Key => Value” Paare enthalten (siehe PHP Arrays). Jedes Paar erscheint im aufgerufenen Skript als Variable Key mit ihrem Inhalt Value.

Danke, die Doku kenne ich. Ich weiß aber nicht, in wie fern sie meine Frage beantworten soll.
Für mich geht daraus nicht hervor, dass als Value kein Array erlaubt ist.

Gruß
Slummi

Es ist auch kein Array erlaubt. Entweder Du übergibst die Werte einzeln mit einem Key dann kannst Du diese mit dem entsprechenden Key im Empfangsskript auch wieder auslesen.

Sollte wie in Deinem Fall es Dir komplett unbekannt sein wie die Daten eigentlich aussehen kannst Du auch alle Daten als Array verschicken.

Dazu kannst Du wie folgt vorgehen:

Sendeskript:


$data = array(1,2,3);
IPS_RunScriptEx(12345, array('Data' => json_encode($data)));

Empfangsskript:


$data_json = $_IPS['Data'];
$data = json_decode($data_json, true);

Dann kannst Du in dem Skript mit dem Array $data weiterarbeiten.

Sofern es keinen Grund für JSON gibt, ist das hier noch besser da es sogar mit Objekten funktioniert :wink:

serialize
PHP: serialize - Manual
und
unserialize
PHP: unserialize - Manual

Michael

Hallo Fonzo,
hallo Nall-chan,

vielen Dank für die Tipps mit JSON und Serialize. Das bringt mich doch ein ganzes Stück weiter.
Hätte ich eigentlich auch selbst drauf kommen können, aber manchmal ist man im Eifer des Gefechts einfach betriebsblind. :banghead:

Gruß
Slummi