Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Popranie danych z innej strony
Forum PHP.pl > Forum > Przedszkole
Stron: 1, 2
Nico~
Wypluło:

Kod
Fatal error: Call to undefined function [{"team":"Elita ND","wins":"2","draws":"0","fails":"0","goals":"21 : 7","points":"6"},{"team":"FC Ojca Beyzyma","wins":"2","draws":"0","fails":"0","goals":"19 : 11","points":"6"},{"team":"LGW Stare Miasto","wins":"1","draws":"0","fails":"0","goals":"8 : 2","points":"3"},{"team":"DEMONY FUTBOLU","wins":"1","draws":"0","fails":"0","goals":"9 : 6","points":"3"},{"team":"Gromow\u0142adni","wins":"0","draws":"0","fails":"1","goals":"6 : 7","points":"0"},{"team":"FC Do\u0142ek","wins":"0","draws":"0","fails":"2","goals":"9 : 14","points":"0"},{"team":"Zespu\u0142 Or\u0142y","wins":"0","draws":"0","fails":"1","goals":"8 : 14","points":"0"},{"team":"Beer_Crew","wins":"0","draws":"0","fails":"1","goals":"2 : 8","points":"0"},{"team":"Vicimus","wins":"0","draws":"0","fails":"1","goals":"1 : 14","points":"0"},{"team":"INDATA Software Sparta Wroc\u0142aw","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"WiAdRoWcY","wins":"0","draws":"0","fails":"0","goals":"0 : 0","p in /home/obarapat/domains/obarapat.linuxpl.info/public_html/pa/test.php on line 6
SmokAnalog
To chyba var_dump coś źle wywołałeś tongue.gif
Nico~
Zamieniłem na:
  1. <?php
  2. require('scores.php');
  3. $scores = json_decode(var_dump);
  4. var_dump($scores);


i wypluło:
Kod
Parse error: syntax error, unexpected '=' in /home/obarapat/domains/obarapat.linuxpl.info/public_html/pa/test.php on line 4
SmokAnalog
Akurat var_dump to funkcja. Przywróć to do stanu używalności i daj po prostu:
  1. var_dump($json);
Nico~
A no to nie skumałem na początku, o co Ci chodziło biggrin.gif

Wypluło takie coś:
Kod
string(1826) "[{"team":"Elita ND","wins":"2","draws":"0","fails":"0","goals":"21 : 7","points":"6"},{"team":"FC Ojca Beyzyma","wins":"2","draws":"0","fails":"0","goals":"19 : 11","points":"6"},{"team":"LGW Stare Miasto","wins":"1","draws":"0","fails":"0","goals":"8 : 2","points":"3"},{"team":"DEMONY FUTBOLU","wins":"1","draws":"0","fails":"0","goals":"9 : 6","points":"3"},{"team":"Gromow\u0142adni","wins":"0","draws":"0","fails":"1","goals":"6 : 7","points":"0"},{"team":"FC Do\u0142ek","wins":"0","draws":"0","fails":"2","goals":"9 : 14","points":"0"},{"team":"Zespu\u0142 Or\u0142y","wins":"0","draws":"0","fails":"1","goals":"8 : 14","points":"0"},{"team":"Beer_Crew","wins":"0","draws":"0","fails":"1","goals":"2 : 8","points":"0"},{"team":"Vicimus","wins":"0","draws":"0","fails":"1","goals":"1 : 14","points":"0"},{"team":"INDATA Software Sparta Wroc\u0142aw","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"WiAdRoWcY","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"Spartan Le\u015bnica","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"Alkopoligamia","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"Gmina Mi\u0119kinia FC B\u0142onie","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"OdraZoo","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"FC Lawiranci","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"PIKNIK GRILL","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"T.B TeaM","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"Wr\u00f3ble Janusza","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"},{"team":"Publicon","wins":"0","draws":"0","fails":"0","goals":"0 : 0","points":"0"}]"
SmokAnalog
Podejrzewam co może być problemem. U mnie długość tego ciągu to 1823, u Ciebie 1826. Nauczysz się teraz pewnie nowej rzeczy (a może się mylę?).

Jest taki potworek jak BOM. To są jakieś śmieci dodawane na początku pliku w systemie. Żeby się ich pozbyć, musisz w edytorze tekstu zapisać plik jako "UTF-8 bez BOM". Jakiego edytora tekstu używasz?
Nico~
Na szczęście używam Notepada ++ i w łatwy sposób mogę zmienić format pliku. Fakt miałem kodowanie UTF-8, teraz zamieniłem na te bez BOM i mam string 1823 tak jak u Ciebie. smile.gif
SmokAnalog
No to teraz kod powinien działać smile.gif $scores powinien już nie mieć NULL-a.
Nico~
Dokładnie tak się stało, teraz mam coś takiego smile.gif
Kod
array(20) { [0]=> object(stdClass)#38 (6) { ["team"]=> string(8) "Elita ND" ["wins"]=> string(1) "2" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(6) "21 : 7" ["points"]=> string(1) "6" } [1]=> object(stdClass)#27 (6) { ["team"]=> string(15) "FC Ojca Beyzyma" ["wins"]=> string(1) "2" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(7) "19 : 11" ["points"]=> string(1) "6" } [2]=> object(stdClass)#6 (6) { ["team"]=> string(16) "LGW Stare Miasto" ["wins"]=> string(1) "1" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "8 : 2" ["points"]=> string(1) "3" } [3]=> object(stdClass)#26 (6) { ["team"]=> string(14) "DEMONY FUTBOLU" ["wins"]=> string(1) "1" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "9 : 6" ["points"]=> string(1) "3" } [4]=> object(stdClass)#25 (6) { ["team"]=> string(12) "Gromowładni" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "1" ["goals"]=> string(5) "6 : 7" ["points"]=> string(1) "0" } [5]=> object(stdClass)#24 (6) { ["team"]=> string(9) "FC Dołek" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "2" ["goals"]=> string(6) "9 : 14" ["points"]=> string(1) "0" } [6]=> object(stdClass)#23 (6) { ["team"]=> string(13) "Zespuł Orły" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "1" ["goals"]=> string(6) "8 : 14" ["points"]=> string(1) "0" } [7]=> object(stdClass)#22 (6) { ["team"]=> string(9) "Beer_Crew" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "1" ["goals"]=> string(5) "2 : 8" ["points"]=> string(1) "0" } [8]=> object(stdClass)#21 (6) { ["team"]=> string(7) "Vicimus" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "1" ["goals"]=> string(6) "1 : 14" ["points"]=> string(1) "0" } [9]=> object(stdClass)#20 (6) { ["team"]=> string(31) "INDATA Software Sparta Wrocław" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [10]=> object(stdClass)#19 (6) { ["team"]=> string(9) "WiAdRoWcY" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [11]=> object(stdClass)#18 (6) { ["team"]=> string(16) "Spartan Leśnica" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [12]=> object(stdClass)#17 (6) { ["team"]=> string(13) "Alkopoligamia" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [13]=> object(stdClass)#16 (6) { ["team"]=> string(26) "Gmina Miękinia FC Błonie" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [14]=> object(stdClass)#15 (6) { ["team"]=> string(7) "OdraZoo" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [15]=> object(stdClass)#14 (6) { ["team"]=> string(12) "FC Lawiranci" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [16]=> object(stdClass)#13 (6) { ["team"]=> string(12) "PIKNIK GRILL" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [17]=> object(stdClass)#12 (6) { ["team"]=> string(8) "T.B TeaM" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [18]=> object(stdClass)#11 (6) { ["team"]=> string(15) "Wróble Janusza" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } [19]=> object(stdClass)#10 (6) { ["team"]=> string(8) "Publicon" ["wins"]=> string(1) "0" ["draws"]=> string(1) "0" ["fails"]=> string(1) "0" ["goals"]=> string(5) "0 : 0" ["points"]=> string(1) "0" } }


Co teraz? Jak to ładnie ubrać w html? smile.gif
SmokAnalog
Teraz już możesz operować na tym swobodnie, to jest zwykła tablica. Będzie zabawa z tym, pewnie będziesz chciał np. pominąć drużyny, które jeszcze nic nie rozegrały, ale po kolei. Zobacz na ten przykład:
  1. <?php
  2. require 'scores.php';
  3. $json = ob_get_clean();
  4. $scores = json_decode($json);
  5. ?>
  6. <table>
  7. <tr>
  8. <th>Drużyna</th>
  9. <th>Mecze</th>
  10. <th>Zwycięstwa</th>
  11. <th>Remisy</th>
  12. <th>Przegrane</th>
  13. <th>Gole</th>
  14. </tr>
  15. <?php foreach ($scores as $score): ?>
  16. <?php $matches = $score->wins + $score->draws + $score->fails ?>
  17. <tr>
  18. <td><?php echo $score->team ?></td>
  19. <td><?php echo $matches ?></td>
  20. <td><?php echo $score->wins ?></td>
  21. <td><?php echo $score->draws ?></td>
  22. <td><?php echo $score->fails ?></td>
  23. <td><?php echo $score->goals ?></td>
  24. </tr>
  25. <?php endforeach ?>
  26. </table>


Zrobiłem taką prymitywną tabelkę ze wszystkimi danymi, żeby zobrazować jak możesz na niej działać. Mam nadzieję, że widzisz jak wiele możesz teraz zrobić po swojemu.
Nico~
Wszystko pięknie gra! Dziękuję bardzo jeszcze raz smile.gif

A mam jeszcze jedno pytanie: na końcu nie powinno się zamknąć php znacznikiem ?> ?
SmokAnalog
Zalecane jest, żeby nie zamykać znacznika PHP w plikach, które kończą się instrukcją PHP, a zwłaszcza w tych, które nie zawierają nic poza kodem PHP. Jest taka dlatego, żeby mieć pewność, że do kodu nie przedostała się żadna treść wyjścia. Zauważ, że między tymi dwoma zakończeniami pliku nie ma wielkiej różnicy:
  1. ?>Ala ma kota!

i
  1. ?>[spacja]


Nie miałem jak inaczej zobrazować spacji. Łatwo przeoczyć po prostu jakiś znaczek po domknięciu PHP, a sam już dzisiaj widziałeś, że np. przy plikach generujących JSON (i nie tylko przy nich) to może wszystko zepsuć. Dlatego nie domykajmy ich, jeśli nie musimy.
Nico~
Dzięki, głód mojej wiedzy został jak na razie zaspokojony smile.gif
SmokAnalog
No to miłych wakacji i dobranoc smile.gif
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.