Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou recebendo um POST de um outro site, deveria vir em json mas quando recebo vem em um texto como apenas um elemento
Recebo em $headers = apache_request_headers(); ai capturo em $headers["json"] ai fica desta forma
string(257) "{"url":https://xxxx.com.br/stamp/download.pdf,"todaspag":"0","carimbos":[{"pag":"1,2,3","texto":"#Topo| Direito","pos":"td","fundo":"branco","cor":"verde","borda":false},{"pag":"1,3","texto":"teste Topo Esquerdo","pos":"te","fundo":"verde","cor":"branco"}]}"
$json=json_decode($headers['Json'],true); // não reconstroe
var_dump($json);
você está usando $headers['Json'] certo seria $headers['json'] com "j" minúsculo para acessar o valor do JSON corretamente
Esse não é um json válido. Todo json é assim: {"título":"ola mundo"} ou {"idade":18}. Não é o seu caso, ele tem um grave erro, logo no começo: {"url": https}, não tem aspas. Isso é um erro de sintaxe, e não há como obter um objeto json válido.
Aqui um exemplo válido:
<?php
$headers='{"url":"https://xxxx.com.br/stamp/download.pdf","todaspag":"0",
"carimbos":[{"pag":"1,2,3","texto":"#Topo| Direito","pos":"td",
"fundo":"branco","cor":"verde","borda":false},
{"pag":"1,3","texto":"teste Topo Esquerdo","pos":"te",
C:\wamp64\www\astudy\index.php:8:
object(stdClass)[1]