/ / Používam v fopene nesprávny argument? - php, html, ajax, json, string

Používam nesprávny argument v fopen? - php, html, ajax, json, reťazec

Pripájam hodnoty json k externému súboru. Údaje formulára sa zaznamenávajú pomocou premenných ajax a post. Mám malý skript, ktorý exploduje dátový reťazec json a pokúsi sa implodovať súbor späť spolu s poštovými premennými v strede (alebo v skutočnosti na konci).

<?php

$json_file = "data.json";
$json_data = $_POST["newUpload"]."]}";
//something like {"name":"foo","email":"foo@bar.com"}

$fh = fopen($json_file, "r+"); //I think this is the problem???

$data = fread($fh, filesize($json_file));
$jsonFrags = explode("]}",$data);
$new_data = implode($json_data,$jsonFrags);
fwrite($fh, $new_data);
fclose($fh);

?>

To bola najjednoduchšia vec, ktorú som mohol prísť s tým, aby zoznam používateľov mohol rásť na webových stránkach spustených mimo XAMPP a na počítači so systémom Windows s veľmi obmedzeným prístupom na internet. Raz možno dvakrát denne.

Celý JSON vyzerá takto:

{"uploads": [{"name":"foo","email":"foo@bar.com","imgurl":"http://placehold.it/50x50"}]}

Načítam údaje do súboru $data a vybuchne na konci znaku súborustring "]}". Týmto spôsobom sa vždy pripája k cieľu. Ale nie je to explodovať / implodovať, čo mi spôsobuje problémy. Môžem použiť str_replace a získať rovnaký výsledok. Po spustení PHP skriptu vyššie, dostanem toto v data.json:

{"uploads": [{"name":"foo","email":"foo@bar.com","imgurl":"http://placehold.it/50x50"}]}{"uploads": [{"name":"bar","email":"bar@foo.com","imgurl":"http://placehold.it/100x100"}]}

Podarilo sa mi zmeniť argument, ktorý sa týka spoločnosti fopen, aby sa dosiahli odlišné výsledky, z ktorých žiaden nebol výsledok, v ktorý som očakával. Nejaké nápady?

odpovede:

1 pre odpoveď č. 1

Premennú ste ešte nedefinovali $json vôbec. pre všetkých vie PHP, $json je null. váš kód sa pokúša otvoriť súbor (na čítanie), ale súbor je null!