Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana tekstu w zewnetrznym pliku *.json
Forum PHP.pl > Forum > PHP
taniu
Witam
Posiadam plik gpsdata.json i chciabym, aby za pomoca php zamienic tekst wewnatrz niego.
CODE
{
"1":{
"RFID":"101",
"LAT":"10",
"LON":"10",
"DATE":"26052015",
"UTC_TIME":"165003.11"
},
"2":{
"RFID":"102",
"LAT":"10",
"LON":"20",
"DATE":"26052015",
"UTC_TIME":"165103.11"
},
"3":{
"RFID":"200",
"LAT":"20",
"LON":"10",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"4":{
"RFID":"20",
"LAT":"30",
"LON":"20",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"5":{
"RFID":"50",
"LAT":"20",
"LON":"30",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"6":{
"RFID":"40",
"LAT":"30",
"LON":"30",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"7":{
"RFID":"101",
"LAT":"40",
"LON":"30",
"DATE":"26052015",
"UTC_TIME":"165003.11"
},
"8":{
"RFID":"102",
"LAT":"30",
"LON":"40",
"DATE":"26052015",
"UTC_TIME":"165103.11"
},
"9":{
"RFID":"200",
"LAT":"40",
"LON":"40",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"10":{
"RFID":"104",
"LAT":"50",
"LON":"40",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"11":{
"RFID":"50",
"LAT":"40",
"LON":"50",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"12":{
"RFID":"40",
"LAT":"50",
"LON":"50",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"13":{
"RFID":"101",
"LAT":"50",
"LON":"60",
"DATE":"26052015",
"UTC_TIME":"165003.11"
},
"14":{
"RFID":"102",
"LAT":"60",
"LON":"50",
"DATE":"26052015",
"UTC_TIME":"165103.11"
},
"15":{
"RFID":"200",
"LAT":"60",
"LON":"60",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"16":{
"RFID":"70",
"LAT":"60",
"LON":"4",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"17":{
"RFID":"60",
"LAT":"50",
"LON":"70",
"DATE":"26052015",
"UTC_TIME":"165503.11"
},
"18":{
"RFID":"40",
"LAT":"100",
"LON":"4",
"DATE":"26052015",
"UTC_TIME":"165503.11"
}
}

Kod formularza za pomoca, ktorego maja zostac zapisane dane wyglada tak:
  1. <form action="form1.php" method="post">
  2. THROW:<div><label for="throw"></label><input id="throw" name="throw" readonly="readonly" value="1" maxlength="2"></div>
  3. RFID:<div><label for="rfid"></label><input id="rfid" name="rfid" value="RFID"></div>
  4. LATITUDE:<div><label for="lat"></label><input id="lat" name="lat" value="LATITUDE"></div>
  5. LONGITUDE:<div><label for="lon"></label><input id="lon" name="lon" value="LONGITUDE"></div>
  6. <div>DATE:
  7. <div class="date">
  8. <label for="day"></label><input id="day" name="day" value="DD" maxlength="2">
  9. <label for="month"></label><input id="month" name="month" value="MM" maxlength="2">
  10. <label for="year"></label><input id="year" name="year" value="YY" maxlength="2">
  11. </div>
  12. </div>
  13. <div>UTC_TIME:
  14. <div class="utc_time">
  15. <label for="hour"></label><input id="hour" name="hour" value="HH" maxlength="2">
  16. <label for="minute"></label><input id="minute" name="minute" value="MM" maxlength="2">
  17. <label for="second"></label><input id="second" name="second" value="SS" maxlength="2">
  18. <label for="hofsec"></label><input id="hofsec" name="hofsec" value="ss" maxlength="2">
  19. </div>
  20. </div>
  21. <input value="Update data" class="send" type="submit"></form>

oraz plik, php ktory ma to zapisac do pliku:
  1. <?php
  2. $dane = "niemanic.json";
  3. $throw = $_POST['throw'];
  4. $rfid = $_POST['rfid'];
  5. $latitude = $_POST['lat'];
  6. $longitude = $_POST['lon'];
  7. $day = $_POST['day'];
  8. $month = $_POST['year'];
  9. $year = $_POST['month'];
  10. $hour = $_POST['hour'];
  11. $minute = $_POST['minute'];
  12. $second = $_POST['second'];
  13. $hofsec = $_POST['hofsec'];
  14.  
  15.  
  16. if($throw == 18) $dot = '';
  17. else $dot = ',';
  18.  
  19. file_put_contents($dane,
  20. '"'.$throw.'":{
  21. "RFID":"'.$rfid.'",
  22. "LAT":"'.$latitude.'",
  23. "LON":"'.$longitude.'",
  24. "DATE":"'.$day.$month.$year.'",
  25. "UTC_TIME":"'.$hour.$minute.$second.'.'.$hofsec.'"
  26. }'.$dot.''
  27. );
  28. ?>


Plik json ma miec zawsze 18 rekordow. PHP musi znalezc lancuch odpowiadajacy calej sekcji z THROW, ktore jest wskazane przez formularz i zamienic ja cala, lub usunac i dopisac do konca pliku.
rad11
dekodujesz jsona robisz interesujace Cie operacje kodujesz i zapisujesz w czym masz problem?
kartin
Tak jak napisał rad11, nie ma co bawić się ręcznie, tylko należy skorzystać z dedykowanych funkcji.
  1. //wczytanie z pliku do zmiennej
  2. $tablica = json_decode($tekst, true);
  3. //operacje
  4. $tekst = json_encode($tablica);
  5. //zapisanie zmiennej do pliku
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.