Ich speichere Array-Daten in eine .json-Datei mit PHP. Die JSON-Datei wird dann an anderer Stelle von JS aufgerufen und in eine Variable geschrieben.Speichern von JSON in Datei, Ändern der Ausgabe, wenn vorhanden
Hier ist der Code für die PHP:
$fetch = mysqli_query($connection, "SELECT * FROM mrb_prprty WHERE `nationalid` = '". $nationalid ."' AND `author` = '" .$username. "'");
$return_arr = array();
while ($row = mysqli_fetch_array($fetch)) {
$row_array['firstName'] = $row['fname'];
$row_array['lastName'] = $row['lname'];
$row_array['nationality'] = $row['nationality'];
$row_array['phone'] = $row['mobile'];
$row_array['email'] = $row['email'];
$row_array['street'] = $row['street'];
$row_array['towncity'] = $row['towncity'];
$row_array['postcode']= $row['postcode'];
$row_array['county'] = $row['county'];
$row_array['country'] = $row['country'];
$row_array['rentpw'] = $row['rentpw'];
$row_array['nationalid'] = $row['nationalid'];
$row_array['passport'] = $row['passport'];
$row_array['isFavorite'] = $row['favourite'];
array_push($return_arr,$row_array);
}
$json_mrb = json_encode($return_arr);
$myFile = "userdata/". $username .".json";
$method = (file_exists($myFile)) ? 'a' : 'w';
$fh = fopen($myFile,$method);
fwrite($fh, $json_mrb."\n");
Wenn dies zum ersten Mal ausgeführt wird, wird es erkennen, wenn die Datei & existiert entweder eine neue Datei mit dem vorhandenen auf dem Ergebnis je erstellen oder anfügen .
Hier ist eine Vorschau der Datei ‚.json‘ nach dem PHP-Code oben zum ersten Mal ausgeführt wird:
[{"firstName":"Ryan","lastName":"Butterworth","nationality":"rKqF01JNdAB1\/EjPW1sulcHzA+Lqp3y\/aaNtpixFphA=","phone":"6jAbOoIal2Eh73neklZgXcA2jJ3831uRiJWE74fADD8=","email":"gpLkiFg4ju4jv4QK6nftnPCqmzdENbsDt4ayI4L1rrkXvg0VJkxmP9Ac57fs4Ar\/","street":"22 Newton Drive","towncity":"Blackpool","postcode":"FY38BS","county":"England","country":"England","rentpw":"VCXaMj\/V6YNExbREuI08eOuINutZRxcx4vv5s2C2FR4=","nationalid":"dNDgHnJJg4rFgbb6qOEC\/dVlnJUNWLCZASo9X8GP5EE=","passport":"123456","isFavorite":""}]
Das Problem, das ich habe ist, dass, wenn Sie den PHP-Code zum zweiten Mal ausführen, wird die .json Datei wird dann wie folgt aussehen:
[{"firstName":"Ryan","lastName":"Butterworth","nationality":"rKqF01JNdAB1\/EjPW1sulcHzA+Lqp3y\/aaNtpixFphA=","phone":"6jAbOoIal2Eh73neklZgXcA2jJ3831uRiJWE74fADD8=","email":"gpLkiFg4ju4jv4QK6nftnPCqmzdENbsDt4ayI4L1rrkXvg0VJkxmP9Ac57fs4Ar\/","street":"22 Newton Drive","towncity":"Blackpool","postcode":"FY38BS","county":"England","country":"England","rentpw":"VCXaMj\/V6YNExbREuI08eOuINutZRxcx4vv5s2C2FR4=","nationalid":"dNDgHnJJg4rFgbb6qOEC\/dVlnJUNWLCZASo9X8GP5EE=","passport":"123456","isFavorite":""}]
[{"firstName":"Ryan","lastName":"Butterworth","nationality":"rKqF01JNdAB1\/EjPW1sulcHzA+Lqp3y\/aaNtpixFphA=","phone":"6jAbOoIal2Eh73neklZgXcA2jJ3831uRiJWE74fADD8=","email":"gpLkiFg4ju4jv4QK6nftnPCqmzdENbsDt4ayI4L1rrkXvg0VJkxmP9Ac57fs4Ar\/","street":"22 Newton Drive","towncity":"Blackpool","postcode":"FY38BS","county":"England","country":"England","rentpw":"VCXaMj\/V6YNExbREuI08eOuINutZRxcx4vv5s2C2FR4=","nationalid":"dNDgHnJJg4rFgbb6qOEC\/dVlnJUNWLCZASo9X8GP5EE=","passport":"123456","isFavorite":""}]
Der Javascript lädt die ‚.json‘ Datei als Variable, wie: var contacts = //fileoutputhere
, aber wie Sie die Datei .json jetzt sehen kann, hat zwei Listen Array so läuft es in einen Fehler.
Statt wie diese in die Datei zu speichern: [{ ...info... }] [{ ...info... }]
Ich möchte es so speichern: [{ ...info... },{ ...info... }]
Ich weiß, ich werde die PHP in irgendeiner Weise zwicken müssen, aber nicht sicher, wie kann ich das machen? Irgendwelche Vorschläge?
Sie können Ihren JSON nicht an eine vorhandene Datei anhängen. Sie müssen den Dateiinhalt laden, in einer Variablen dekodieren, neue Daten hinzufügen, verschlüsseln und speichern und alte Dateien überschreiben. – fusion3k
Entschuldigung, ich bin neu in der Arbeit mit JSON-Formaten. Könnten Sie mir ein grundlegendes Beispiel dafür geben, wie ich das erreichen könnte?Hinweis: Alles hier funktioniert perfekt wie erwartet (abgesehen von der JS-Variable natürlich, da es in zwei Arrays in der Datei aufgeteilt ist) Ich hoffte nur, es gab eine Möglichkeit, die eckigen Klammern zu entfernen und ein Komma hinzuzufügen, wenn es die Datei erkennt existiert, also ist alles in einem Array –
Sie müssten die Datei zuerst in eine Variable lesen, dann die neuen Daten an das Array in dieser Variablen anhängen und dann die Datei dekodieren und speichern (die vorherige Datei überschreiben, nicht anhängen) –