Dizisel verileri PHP ile bir .json dosyasına kaydediyorum. .json dosyası daha sonra bazı JS tarafından çağrılır ve bir değişkene konur. İşte Dosyaya JSON kaydediliyor, varsa çıktı değiştiriliyor
PHP kod: Dosya & varsa$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");
bu ilk kez çalıştırıldığında, yeni bir dosya oluşturmak veya sonucuna göre mevcut bir eklenecek ya algılar . İşte
ilk kez yukarıdaki PHP kodu çalıştırdıktan sonra '.json' dosyanın önizlemesini var:[{"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":""}]
Ben sorun olduğunu size ikinci kez PHP kodu çalıştırdığınızda, JavaScript gibi bir değişken olarak '.json' dosyasını yükleyen
[{"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":""}]
: .json dosya daha sonra aşağıdaki gibi görünecektir var contacts = //fileoutputhere
ancak .json dosyasını görebileceğiniz gibi bu çalıştırır böylece artık iki dizi listeleri vardır bir hataya. [{ ...info... },{ ...info... }]
, ama emin değilim: [{ ...info... }] [{ ...info... }]
bunun böyle kaydetmek istiyorum: Bunun yerine böyle dosyaya kaydetme
bunu nasıl yapabilirim. Baska öneri?
JSON'nuzu varolan dosyaya ekleyemezsiniz. Dosya içeriğini yüklemeniz, bir değişkende şifresini çözmeniz, yeni verileri eklemeniz, kodlamak ve eski dosyanın üzerine kaydetmeniz gerekiyor. – fusion3k
Üzgünüm JSON biçimleriyle çalışmak konusunda yeniyim, bunu nasıl başarabileceğime dair temel bir örnek verebilir misiniz?not: burada her şey beklendiği gibi mükemmel çalışıyor (tabii ki JS değişkeni dışında, dosyada iki diziye ayrılmıştır). Sadece köşeli ayraçları kaldırmanın ve dosyayı algılarsa virgül eklemenin bir yolu olduğunu umuyorum var, yani hepsi bir dizide var –
Dosyayı önce bir değişkene okumalısınız, daha sonra yeni verileri bu değişkendeki diziye ekleyiniz ve sonra dosyayı şifreleyip kaydedeceksiniz (bir önceki dosyanın üzerine yazarak) –