3 Stimmen

PHP: Übertragung eines großen Arrays zwischen zwei Standorten

Ich versuche, ein großes Array zwischen zwei Websites in PHP zu übertragen. Ich bin in beiden der Administrator. Das Array wird auf einer Seite erstellt, und nach seiner Erstellung möchte ich den Benutzer automatisch auf die andere Seite umleiten und das verarbeitete Array weitergeben.

Ich kann die superglobale SESSION nicht verwenden, da sie auf eine bestimmte Domäne beschränkt ist. GET ist nicht geeignet, da das Array zu lang ist. Ich bin nicht sicher, ob POST geeignet ist und ob es eine Möglichkeit gibt, die Daten automatisch zu senden, ohne den Benutzer zu zwingen, auf eine Schaltfläche zu klicken und ein Formular einzureichen. Ich weiß, Javascript kann für diese verwendet werden, aber lieber etwas mehr robust.

Ich bin relativ neu in PHP und würde mich freuen, von anderen Möglichkeiten zu hören, dies zu tun. Danke!

1voto

Alfred Punkte 58623

Ihr Problem:

gesendet array(ar) Von Server(a) a Server(b)

Meine Lösung:

  1. Server(a) erzeugt eine einzigartige url(url) para Server(b) die Folgendes enthält Array(ar) kodiert in z.B. json mit json_encode(ar). Diese Array(ar) sollte gespeichert werden bei url zum Beispiel mit mysql oder einer einfachen Textdatei.

    $uid = md5(uniqid(mt_rand(), true)); // to generate unique id
  2. Server(a) leitet den Browser weiter zu Server(b) enthält auch $uid

    $url = "http://server-b/page"; // url to page
    header('Location: $url?uid=$uid');
  3. Server(b) erhält den Inhalt von url en Server(a) und dekodiert den Inhalt zurück nach Array(ar)

    $uid = $_GET['uid']; // uid
    $url_server_a = "http://server-a/webservice?uid=$uid";
    $ar = json_decode(file_get_contents($url_server_a));

0voto

jeroen Punkte 89799

Ich denke, man könnte sie serialisieren, als Datei speichern, auf die man vom anderen Server aus zugreifen kann, und sie vom anderen Server aus wieder laden. Auf diese Weise wäre keine Benutzeraktion erforderlich, aber Sie müssten das Verzeichnis, in dem Sie die Datei speichern, schützen, um Datenschutzprobleme zu vermeiden.

Editar: Ich nehme an, dass sie auf verschiedenen Servern sind, sonst wäre es noch einfacher...

0voto

Narcissus Punkte 3104

An meiner Stelle würde ich die Informationen in einem anderen Medium speichern: z. B. in einer Memcache-Umgebung oder in einer Datenbank, auf die beide zugreifen können.

0voto

jlb Punkte 17760

Nachdem das Array erstellt wurde, könnten Sie schnell eine Seite mit einem Formular erstellen, das die Daten in einem verborgenen Feld enthält. Diese Seite könnte dann automatisch das Formular (mit method="POST") an Ihre Weiterleitung übermitteln.

0voto

Julius F Punkte 3314

Sie könnten das Array in JSON dekodieren und einen Link zum zweiten Server senden, der den Download für die temporäre JSON-Datei enthält, die JSON-Datei einfach wieder in PHP dekodieren und Sie müssen keine LONG-URLs verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X