jak přenést data z jednoho webu na druhý pomocí JSON

admin@easyweb4u.cz
Backer | 133
+
0
-

Zdar borci,

potřebuji přenést data (pole) z jednoho webu na druhý.

Na straně odesilatele si nejprve ukládám JSON do databáze

<?php
                    $val[$smaknisiid] = $this->dailymenu->getDailymenu(); // funkce v models

                    $exp = Json::encode($val);

                    $this->database->query('UPDATE export SET ?', [
                        'dateexport' => date('Y-m-d H:i:s'),
                        'export' => $exp
                    ]);
?>

Výsledek z databáze

{182be0c5cdcd5072bb1864cdee4d3d6e,[78,„2022–02–07“,„200 ml“,„Fazolová polévka s uzeným“,„39“,1,1,0,0],[79,„2022–02–07“,„150 g“,„Hovězí zadní, koprová omáčka, houskový knedlík“,„138“,2,1,0,1],[80,„2022–02–07“,„100 g“,„Hovězí zadní, rajská omáčka, houskový knedlík“,„139“,3,1,0,1],[81,„2022–02–07“,„100 g“,„Moravský brabec, bílé zelí, houskový knedlík“,„129“,4,1,0,1],[83,„2022–02–07“,„100 g“,„Vepřové v kapustě, brambor“,„135“,5,1,0,1],[77,„2022–02–07“,„100 g“,„Čočka na kyselo, sázené vejce, okurka“,„115“,6,1,0,1],[82,„2022–02–07“,„150 g“,„Smažený candát, šťouchaný brambor“,„155“,7,1,0,1]]}

Kliknutím na tlačítko EXPORTOVAT se volá URL příjemce kde

<?php

            $json_string = file_get_contents('http://' . $row->www . '/admin/expmenu/default/2/' . md5($restid));

            $json = json_decode($json_string, true);

            if ($json != null) {

				foreach ($json as $k=>$v) {

					// uložení dat do databáze příjemce

			}
?>

Na lokálním serveru mi to funguje, ale jakmile jsem to dal na ostrý server, hlásí to chybu

file_get_contents(https://foxmart-software.cz/…64cdee4d3d6e): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error

já mám pocit, že se do toho motá šablona layout.latte

zkusil jsem použít na straně příjemce

$this->sendJson($this->export);

abych odesílal data mimo šablonu, ale ve výstupu je JSON escapovaný a na druhé straně to říká, že žádní $json není.

výstup na straně odesílatele:

„{\182be0c5cdcd5072bb1864cdee4d3d6e\,[78,\“2022–02–07\„,\“200 ml\„,\"Fazolová polévka s uzeným\“,\„39\“,1,1,0,0],[79,\„2022–02–07\“,\„150 g\“,\„Hovězí zadní, koprová omáčka, houskový knedlík\“,\„138\“,2,1,0,1],[80,\„2022–02–07\“,\„100 g\“,\„Hovězí zadní, rajská omáčka, houskový knedlík\“,\„139\“,3,1,0,1],[81,\„2022–02–07\“,\„100 g\“,\„Moravský brabec, bílé zelí, houskový knedlík\“,\„129\“,4,1,0,1],[83,\„2022–02–07\“,\„100 g\“,\„Vepřové v kapustě, brambor\“,\„135\“,5,1,0,1],[77,\„2022–02–07\“,\„100 g\“,\„Čočka na kyselo, sázené vejce, okurka\“,\„115\“,6,1,0,1],[82,\„2022–02–07\“,\„150 g\“,\„Smažený candát, šťouchaný brambor\“,\„155\“,7,1,0,1]]}"

Co s tím, prosím, žádné teorie, tomu já nerozumím, pokud něco, tak s konkrétním příkladem.

Dík

Editoval admin@easyweb4u.cz (9. 2. 12:25)

Pavel Kravčík
Člen | 1082
+
0
-

Odlaď si to nejdřív výstup, například přes: https://www.postman.com/. Pak už ten foreach asi zvládneš. :)

admin@easyweb4u.cz
Backer | 133
+
-2
-

Pavel Kravčík napsal(a):

Odlaď si to nejdřív výstup, například přes: https://www.postman.com/. Pak už ten foreach asi zvládneš. :)

Probůh, co to je? Ještě tohle abych študoval… Už takhle mi z toho všeho jde hlava kolem. Sorry. PS: asi by stačilo udělat, aby $this->sendJson($this->export); odešlo neescapované.

Editoval admin@easyweb4u.cz (9. 2. 12:46)

m.brecher
Backer | 128
+
0
-

Ahoj,

první co mě napadlo, jestli není pomocí php_ini direktivy allow_url_fopen zablokováno čtení file_get_contents(‘https://www.domain.com/…’), zkoušel jsem si na svém hostingu načíst nějaký plain/text soubor z jiného webu pomocí file_get_contents() a funguje to. Při zablokování allow_url_fopen = ‘0’ to navíc hází úplně jinou chybu. Takže allow_url_fopen jako příčinu chyby můžeme vyloučit.

Chybu hlavně hlásí server, který by měl na odpověď na url zaslat json soubor. Chyba nejspíš vzniká v procesu vytváření toho json souboru

Takže potřebujeme více informací jak se json vyrábí – presenter, šablonu, model. Tam by někde mohla být chyba. Zkus poslat tyto zdrojové kódy které participují na generování json-u a něco vymyslíme.

nightfish
Člen | 268
+
0
-

@adminaeasyweb4ucz

file_get_contents(https://foxmart-software.cz/…64cdee4d3d6e): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error

Podívej se do logů Nette na serveru, kde běží výše uvedená URL – dokud nevyřešíš tuhle chybu, nemá smysl řešit nic dalšího.

admin@easyweb4u.cz
Backer | 133
+
0
-

m.brecher napsal(a):

Ahoj,

první co mě napadlo, jestli není pomocí php_ini direktivy allow_url_fopen zablokováno čtení file_get_contents(‚https://www.domain.com/…‘), zkoušel jsem si na svém hostingu načíst nějaký plain/text soubor z jiného webu pomocí file_get_contents() a funguje to. Při zablokování allow_url_fopen = ‚0‘ to navíc hází úplně jinou chybu. Takže allow_url_fopen jako příčinu chyby můžeme vyloučit.

Chybu hlavně hlásí server, který by měl na odpověď na url zaslat json soubor. Chyba nejspíš vzniká v procesu vytváření toho json souboru

Takže potřebujeme více informací jak se json vyrábí – presenter, šablonu, model. Tam by někde mohla být chyba. Zkus poslat tyto zdrojové kódy které participují na generování json-u a něco vymyslíme.

Ale ten JSON já normálně vidím, můžeš se na něj podívat:

https://foxmart-software.cz/…64cdee4d3d6e

buď jde přes šablonu, to je tento, anebo když použiju v presenteru $this->sendJson($this->export); tak escapovaný (v původním příspěvku). Já myslím, že by to mohlo být tou direktivou, už jsem psal na hosting. Tak uvidíme

Sorry, zkopnul jsem špatný link: https://foxmart-software.cz/…64cdee4d3d6e

Editoval admin@easyweb4u.cz (9. 2. 13:14)

Pavel Kravčík
Člen | 1082
+
0
-

@adminaeasyweb4ucz @nightfish: Jak píše noční ryba, postman appka je super na testování response z různých zdrojů. Často Ti i napíše, co musíš povolit nebo Ti doplní hlavičky. ;)

admin@easyweb4u.cz
Backer | 133
+
0
-

nightfish napsal(a):

@adminaeasyweb4ucz

file_get_contents(https://foxmart-software.cz/…64cdee4d3d6e): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error

Podívej se do logů Nette na serveru, kde běží výše uvedená URL – dokud nevyřešíš tuhle chybu, nemá smysl řešit nic dalšího.

allow_urp_fopen je nastaveno na ON

nightfish
Člen | 268
+
0
-

admin@easyweb4u.cz napsal(a):
Ale ten JSON já normálně vidím, můžeš se na něj podívat:

https://foxmart-software.cz/…64cdee4d3d6e
Sorry, zkopnul jsem špatný link: https://foxmart-software.cz/…64cdee4d3d6e

Oba dva ty linky hází „Server Error“. Když si odmažu část URL, a podívám se na https://foxmart-software.cz/…urant/admin/, tak vidím přihlašovací formulář. Takže je možné, že mně to nefunguje, protože nejsem přihlášený, a tobě to funguje, protože přihlášený jsi. Zkus si ty URL otevřít v anonymním okně prohlížeče.

admin@easyweb4u.cz
Backer | 133
+
0
-

nightfish napsal(a):

@adminaeasyweb4ucz

file_get_contents(https://foxmart-software.cz/…64cdee4d3d6e): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error

Podívej se do logů Nette na serveru, kde běží výše uvedená URL – dokud nevyřešíš tuhle chybu, nemá smysl řešit nic dalšího.

[2022–02–09 14–00–48] Nette\DI\ServiceCreationException: Service of type Nette\Database\Context needed by $database in App\Admin\Presenters\AdminPresenter::__construct() not found. Did you add it to configuration file? in /www/doc/www.foxmart-software.cz/www/web-restaurant/vendor/nette/di/src/DI/Resolver.php:560 @ https://foxmart-software.cz/…64cdee4d3d6e @@ exception–2022–02–08–18–00–78fcc0693a.html

no to jsem blázen, když odkomentuju

$configurator->setDebugMode(‚mojeIP‘);

tak se JSON zobrazí

vymázl jsem cash a výsledek se zobrazí, na straně odesilatele podle mě chyb není.

Editoval admin@easyweb4u.cz (9. 2. 14:14)

Marek Bartoš
Nette Blogger | 718
+
0
-

Buď máš config, který přidáváš v závislosti na debug módu nebo jsi prostě zapomněl smazat vygenerovaný DI container. Ten se při změnách obnovuje jen v debug módu – měl bys ho mazat automaticky při deployi na server

admin@easyweb4u.cz
Backer | 133
+
0
-

nightfish napsal(a):

admin@easyweb4u.cz napsal(a):
Ale ten JSON já normálně vidím, můžeš se na něj podívat:

https://foxmart-software.cz/…64cdee4d3d6e
Sorry, zkopnul jsem špatný link: https://foxmart-software.cz/…64cdee4d3d6e

Oba dva ty linky hází „Server Error“. Když si odmažu část URL, a podívám se na https://foxmart-software.cz/…urant/admin/, tak vidím přihlašovací formulář. Takže je možné, že mně to nefunguje, protože nejsem přihlášený, a tobě to funguje, protože přihlášený jsi. Zkus si ty URL otevřít v anonymním okně prohlížeče.

ne ne, to přihlášení se obchází

admin@easyweb4u.cz
Backer | 133
+
0
-

Marek Bartoš napsal(a):

Buď máš config, který přidáváš v závislosti na debug módu nebo jsi prostě zapomněl smazat vygenerovaný DI container. Ten se při změnách obnovuje jen v debug módu – měl bys ho mazat automaticky při deployi na server

Jako smazat cash? To jsem teď udělal, a vidím ten json (zaescapovaný), podle mě na straně odesilatele chyba není

Marek Bartoš
Nette Blogger | 718
+
0
-

podle mě na straně odesilatele chyba není

Je tam server error. Takže je chyba na serveru. Nette\Database\Context se ti registruje, když v klíči database (DatabaseExtension) vyplníš login databáze. Takže bys měl zjistit, proč se ti načte jen v debug módu.


'cash' !== 'cache'

Editoval Marek Bartoš (9. 2. 14:28)

Jan Tvrdík
Nette guru | 2595
+
+3
-

Ten JSON je double encoded, tj. buď musíš nahradit

$this->sendJson($this->export);

za

$this->sendJson(Json::decode($this->export));

nebo metodu sendJson vůbec nepoužívat a vyřešit to ručně (třeba přes CallbackResponse)

m.brecher
Backer | 128
+
0
-

admin@easyweb4u.cz napsal(a):

m.brecher napsal(a):

Ahoj,

první co mě napadlo, jestli není pomocí php_ini direktivy allow_url_fopen zablokováno čtení file_get_contents(‚https://www.domain.com/…‘), zkoušel jsem si na svém hostingu načíst nějaký plain/text soubor z jiného webu pomocí file_get_contents() a funguje to. Při zablokování allow_url_fopen = ‚0‘ to navíc hází úplně jinou chybu. Takže allow_url_fopen jako příčinu chyby můžeme vyloučit.

Chybu hlavně hlásí server, který by měl na odpověď na url zaslat json soubor. Chyba nejspíš vzniká v procesu vytváření toho json souboru

Takže potřebujeme více informací jak se json vyrábí – presenter, šablonu, model. Tam by někde mohla být chyba. Zkus poslat tyto zdrojové kódy které participují na generování json-u a něco vymyslíme.

Ale ten JSON já normálně vidím, můžeš se na něj podívat:

https://foxmart-software.cz/…64cdee4d3d6e

buď jde přes šablonu, to je tento, anebo když použiju v presenteru $this->sendJson($this->export); tak escapovaný (v původním příspěvku). Já myslím, že by to mohlo být tou direktivou, už jsem psal na hosting. Tak uvidíme

Sorry, zkopnul jsem špatný link: https://foxmart-software.cz/…64cdee4d3d6e

No na tom opraveném linku skutečně JSON je !! Takže jsem kvůli špatnému linku pátral špatným směrem.

funkční link:
https://foxmart-software.cz/…64cdee4d3d6e

Takže to nebude žádná chyba na vysílajícím serveru a navíc si myslím, že nebude ani chyba na webhostingu.

Podle mne chyba v php konfiguraci na webhostingu nebude – protože když by čtení externí url bylo zakázáno, házelo by to jinou chybu než ti to hází (zkoušel jsem to.)

Pro jistotu si sám na provozním webhostingu příjemce JSONu otestuj (např. někde v presenteru):

     bdump(ini_get('allow_url_fopen'));

Mělo by to dát ‚1‘

také zkus spustit třeba tenhle kód, který čte soubor z externí url – mě to na hostingu funguje:

     bdump(file_get_contents('https://www.krejcovstvi-tumova.cz/robots.txt'));

Když ti zobrazí text ‚User agent: ......‘ tak načítání z url funguje a nemusíš to řešit.

Po vyloučení problému s načtením z url pátrej v kódu kde máš file_get_contents():

  • ověřit, že se spustil správný presenter
  • ověřit, že se soubor načetl
  • atd…

Když by to na Tebe bylo těžké, pošli kompletní kódy přijímající aplikace, aby se dalo poradit kde hledat chybu ;)

Také jak Ti kolegové radí, nezapomeň vždycky když ladíš na produkčním serveru SMAZAT cache, protože ta bývá někdy zdrojem chyb, které se blbě hledají.

admin@easyweb4u.cz
Backer | 133
+
0
-

Chlapci, já to teď shrnu (jebu se s tím už 3. den)

Ten přenos funguje, když odesílám $this->sendJson($this->export); to znamená data rovnou z presenteru

ale protože je ten JSON zaescapovaný

„{\182be0c5cdcd5072bb1864cdee4d3d6e\,[78,\“2022–02–08\„,\“200 ml\„,\"Fazolová polévka s uzeným\“,\„35\“,1,1,0,0],[79,\„2022–02–08\“,\„150 g\“,\„Hovězí zadní, koprová omáčka, houskový knedlík\“,\„138\“,2,1,0,1],[80,\„2022–02–08\“,\„100 g\“,\„Hovězí zadní, rajská omáčka, houskový knedlík\“,\„139\“,3,1,0,1],[81,\„2022–02–08\“,\„100 g\“,\„Moravský brabec, bílé zelí, houskový knedlík\“,\„129\“,4,1,0,1],[83,\„2022–02–08\“,\„100 g\“,\„Vepřové v kapustě, brambor\“,\„135\“,5,1,0,1],[77,\„2022–02–08\“,\„100 g\“,\„Čočka na kyselo, sázené vejce, okurka\“,\„115\“,6,1,0,1],[82,\„2022–02–08\“,\„150 g\“,\„Smažený candát, šťouchaný brambor\“,\„155\“,7,1,0,1]]}"

tak na straně příjemce nefunguje tato procedura

<?php
            $json_string = file_get_contents('https://' . $domain . '/admin/expmenu/default/1/' . md5($restid));

            $json = json_decode($json_string, true);

            if ($json != null) {

				// ulozeni do database
			}
?>

proto to hází už normální chybu

Invalid argument supplied for foreach(), protože $json není pole, že

A já potřebuju vyřešit buď

1. aby se odesílal neescapovaný JSON

nebo to vyřešit na straně příjemce, viz kód výše

admin@easyweb4u.cz
Backer | 133
+
0
-

m.brecher napsal(a):

admin@easyweb4u.cz napsal(a):

m.brecher napsal(a):

Ahoj,

první co mě napadlo, jestli není pomocí php_ini direktivy allow_url_fopen zablokováno čtení file_get_contents(‚https://www.domain.com/…‘), zkoušel jsem si na svém hostingu načíst nějaký plain/text soubor z jiného webu pomocí file_get_contents() a funguje to. Při zablokování allow_url_fopen = ‚0‘ to navíc hází úplně jinou chybu. Takže allow_url_fopen jako příčinu chyby můžeme vyloučit.

Chybu hlavně hlásí server, který by měl na odpověď na url zaslat json soubor. Chyba nejspíš vzniká v procesu vytváření toho json souboru

Takže potřebujeme více informací jak se json vyrábí – presenter, šablonu, model. Tam by někde mohla být chyba. Zkus poslat tyto zdrojové kódy které participují na generování json-u a něco vymyslíme.

Ale ten JSON já normálně vidím, můžeš se na něj podívat:

https://foxmart-software.cz/…64cdee4d3d6e

buď jde přes šablonu, to je tento, anebo když použiju v presenteru $this->sendJson($this->export); tak escapovaný (v původním příspěvku). Já myslím, že by to mohlo být tou direktivou, už jsem psal na hosting. Tak uvidíme

Sorry, zkopnul jsem špatný link: https://foxmart-software.cz/…64cdee4d3d6e

No na tom opraveném linku skutečně JSON je !! Takže jsem kvůli špatnému linku pátral špatným směrem.

funkční link:
https://foxmart-software.cz/…64cdee4d3d6e

Takže to nebude žádná chyba na vysílajícím serveru a navíc si myslím, že nebude ani chyba na webhostingu.

Podle mne chyba v php konfiguraci na webhostingu nebude – protože když by čtení externí url bylo zakázáno, házelo by to jinou chybu než ti to hází (zkoušel jsem to.)

Pro jistotu si sám na provozním webhostingu příjemce JSONu otestuj (např. někde v presenteru):

     bdump(ini_get('allow_url_fopen'));

Mělo by to dát ‚1‘

také zkus spustit třeba tenhle kód, který čte soubor z externí url – mě to na hostingu funguje:

     bdump(file_get_contents('https://www.krejcovstvi-tumova.cz/robots.txt'));

Když ti zobrazí text ‚User agent: ......‘ tak načítání z url funguje a nemusíš to řešit.

Po vyloučení problému s načtením z url pátrej v kódu kde máš file_get_contents():

  • ověřit, že se spustil správný presenter
  • ověřit, že se soubor načetl
  • atd…

Když by to na Tebe bylo těžké, pošli kompletní kódy přijímající aplikace, aby se dalo poradit kde hledat chybu ;)

Také jak Ti kolegové radí, nezapomeň vždycky když ladíš na produkčním serveru SMAZAT cache, protože ta bývá někdy zdrojem chyb, které se blbě hledají.

jo, jo dík, ten přenos už funguje, viz níže, smazal jsem cache, já už se točím v kruhu a pak jí zapomenu smazat

admin@easyweb4u.cz
Backer | 133
+
0
-

admin@easyweb4u.cz napsal(a):

Chlapci, já to teď shrnu (jebu se s tím už 3. den)

Ten přenos funguje, když odesílám $this->sendJson($this->export); to znamená data rovnou z presenteru

ale protože je ten JSON zaescapovaný

„{\182be0c5cdcd5072bb1864cdee4d3d6e\,[78,\“2022–02–08\„,\“200 ml\„,\"Fazolová polévka s uzeným\“,\„35\“,1,1,0,0],[79,\„2022–02–08\“,\„150 g\“,\„Hovězí zadní, koprová omáčka, houskový knedlík\“,\„138\“,2,1,0,1],[80,\„2022–02–08\“,\„100 g\“,\„Hovězí zadní, rajská omáčka, houskový knedlík\“,\„139\“,3,1,0,1],[81,\„2022–02–08\“,\„100 g\“,\„Moravský brabec, bílé zelí, houskový knedlík\“,\„129\“,4,1,0,1],[83,\„2022–02–08\“,\„100 g\“,\„Vepřové v kapustě, brambor\“,\„135\“,5,1,0,1],[77,\„2022–02–08\“,\„100 g\“,\„Čočka na kyselo, sázené vejce, okurka\“,\„115\“,6,1,0,1],[82,\„2022–02–08\“,\„150 g\“,\„Smažený candát, šťouchaný brambor\“,\„155\“,7,1,0,1]]}"

tak na straně příjemce nefunguje tato procedura

<?php
            $json_string = file_get_contents('https://' . $domain . '/admin/expmenu/default/1/' . md5($restid));

            $json = json_decode($json_string, true);

            if ($json != null) {

				// ulozeni do database
			}
?>

proto to hází už normální chybu

Invalid argument supplied for foreach(), protože $json není pole, že

A já potřebuju vyřešit buď

1. aby se odesílal neescapovaný JSON

nebo to vyřešit na straně příjemce, viz kód výše

ještě přikládám výstup ($json_string) z příjemce

Import
„{\182be0c5cdcd5072bb1864cdee4d3d6e\,[78,\“2022–02–08\„,\“200 ml\„,\"Fazolová polévka s uzeným\“,\„35\“,1,1,0,0],[79,\„2022–02–08\“,\„150 g\“,\„Hovězí zadní, koprová omáčka, houskový knedlík\“,\„138\“,2,1,0,1],[80,\„2022–02–08\“,\„100 g\“,\„Hovězí zadní, rajská omáčka, houskový knedlík\“,\„139\“,3,1,0,1],[81,\„2022–02–08\“,\„100 g\“,\„Moravský brabec, bílé zelí, houskový knedlík\“,\„129\“,4,1,0,1],[83,\„2022–02–08\“,\„100 g\“,\„Vepřové v kapustě, brambor\“,\„135\“,5,1,0,1],[77,\„2022–02–08\“,\„100 g\“,\„Čočka na kyselo, sázené vejce, okurka\“,\„115\“,6,1,0,1],[82,\„2022–02–08\“,\„150 g\“,\„Smažený candát, šťouchaný brambor\“,\„155\“,7,1,0,1]]}"

zkusil jsem ty \ nahradit '', ale String::replace to neumí

nightfish
Člen | 268
+
0
-

@adminaeasyweb4ucz Pravděpodobně jsi přehlédl odpověď od Jana Tvrdíka, ve které je popsáno, jak problém vyřešit.

admin@easyweb4u.cz
Backer | 133
+
0
-

Jan Tvrdík napsal(a):

Ten JSON je double encoded, tj. buď musíš nahradit

$this->sendJson($this->export);

za

$this->sendJson(Json::decode($this->export));

nebo metodu sendJson vůbec nepoužívat a vyřešit to ručně (třeba přes CallbackResponse)

$this->sendJson(Json::decode($this->export)); opět vyvolá chybu na příjmu

file_get_contents(https://foxmart-software.cz/…64cdee4d3d6e): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error

no když dám

<?php $json = json_decode($json_string, true); ?>

a zobrazím si $json, zobrzí se řetězec bez escapů, jak z toho ale dostat pole?

v dokumentaci vidím

<?php Json::decode(‚{„variable“: true}‘, Json::FORCE_ARRAY); // vrací pole ?>

ale kam se tam strká proměnná? Jak se to používá?

Editoval admin@easyweb4u.cz (9. 2. 15:50)

admin@easyweb4u.cz
Backer | 133
+
0
-

nightfish napsal(a):

@adminaeasyweb4ucz Pravděpodobně jsi přehlédl odpověď od Jana Tvrdíka, ve které je popsáno, jak problém vyřešit.

Přehlédl, díky

admin@easyweb4u.cz
Backer | 133
+
0
-

Marek Bartoš napsal(a):

podle mě na straně odesilatele chyba není

Je tam server error. Takže je chyba na serveru. Nette\Database\Context se ti registruje, když v klíči database (DatabaseExtension) vyplníš login databáze. Takže bys měl zjistit, proč se ti načte jen v debug módu.


'cash' !== 'cache'

ano cache… Tak data už se přenášení, escapů jsem se na vstupu zbavil, jen neumím udělat z JSON stringu array. V dokumentaci vidím

<?php
	Json::decode(‚{„variable“: true}‘, Json::FORCE_ARRAY);
?>

jak se to používá, kam s proměnou?

admin@easyweb4u.cz
Backer | 133
+
-3
-

Tož chlapci vyřešeno, to úplně úvodní řešení funguje (motal jsem se v tom, protože jsem zapomínal vysejpat cahce a podobně), nicméně, jak už tu psal Jan Tvrdík „Ten JSON je double encoded“ tak se musí 2 x decode, třeba takhle nějak

<?php
            $jsons = json_decode($json_string);

            $json = json_decode($jsons, true);
?>

a máme array

Ale pomohli jste, ne že ne ;-) dík všem

Editoval admin@easyweb4u.cz (9. 2. 16:48)