paulo_henrique_cnl Postado Julho 27, 2021 Denunciar Share Postado Julho 27, 2021 Olá, boa tarde! Estou tentando retornar os dados de uma api mais retorna apenas vázio. Podem me ajudar? $pagina = file_get_contents('http://transparencia.se.sesc.com.br/transparencia/api/licitacoes?type=json?page_size=1'); $page = json_decode($pagina); print_r($page); exit; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Agosto 30, 2022 Denunciar Share Postado Agosto 30, 2022 (editado) Esse é um problema que enfrento há dois anos e não sei como resolver. O json_decode está retornando nulo para a $pagina porque ele entende que a $pagina não é um json válido. A pergunta que eu faço há dois anos é como tornar um texto no formato json se tornar válido no mundo do PHP. Como eu não entendo nada de programação, eu usei o famigerado método da tentativa e erro. Copiei a página http://transparencia.se.sesc.com.br/transparencia/api/licitacoes dentro do Notepad+. O Notepad+ ajuda bastante, pois ele avermelha as chaves { } e assim fica fácil separar as informações por parte e criar o arquivo astudy.php, assim astudy.php ------------------------------------ <?php $p001='{"pagina_total":3,"pagina_atual":1,"pagina_anterior":null,"pagina_proxima":2,"registro_total":21,"registro_atual":10}'; $teste=json_decode($p001);var_dump($teste); $p002='{"id":54,"identificacao":"Edital de Concorr\u00eancia N\u00b0 22\/000017","objeto":"Contrata\u00e7\u00e3o de empresa especializada para execu\u00e7\u00e3o das obras de revitaliza\u00e7\u00e3o da \u00e1rea de entorno das piscinas e recupera\u00e7\u00e3o do parque aqu\u00e1tico das unidades Sesc Praia e Sesc Beira Rio.","data_publicacao":"2022-08-19","data_abertura":"2022-09-06","local":"Sesc Caixeral Parna\u00edba-PI","telefone":"86 3217-2852","email":"licitasescpi@pi.sesc.com.br","processo":"N\u00b0 22\/000017","vencedores":[],"responsavel":"Supervis\u00e3o de Licita\u00e7\u00e3o","valor":"","modalidade":"Concorr\u00eancia","documentos":[{"descricao":"Edital de Concorr\u00eancia","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-edital-de-concorrencia-1661169326.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"Anexo IV","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-anexo-iv-1660909754.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"Anexo III","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-anexo-iii-1660909732.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"ANEXO II ","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-anexo-ii-1660909699.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"Anexo I","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-anexo-i-1660909679.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"Aviso de Licita\u00e7\u00e3o","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-aviso-de-licitacao-1660909627.pdf","tipo":null,"data":"2022-08-19 00:00:00"}],"classificados":[],"desclassificados":[]}'; $teste=json_decode($p002);var_dump($teste); $p003=`{"id":53,"identificacao":" Edital de Concorr\u00eancia RP N\u00b0 22\/000015","objeto":"Aquisi\u00e7\u00e3o de Materiais de Consumo Odontol\u00f3gico EPI'S para atender as demandas das clinicas odontol\u00f3gicas do Sesc\/PI.","data_publicacao":"2022-07-12","data_abertura":"2022-07-27","local":"Sesc AR\/PI","telefone":"86 3217-2852","email":"licitasescpi@pi.sesc.com.br","processo":"RP N\u00b0 22\/000015","vencedores":[],"responsavel":"Supervis\u00e3o de Licita\u00e7\u00e3o","valor":"","modalidade":"Concorr\u00eancia","documentos":[{"descricao":"Aviso de Resultado de Classifica\u00e7\u00e3o das Propostas","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-aviso-de-resultado-de-classificacao-das-propostas-1659095595.pdf","tipo":null,"data":"2022-07-28 00:00:00"},{"descricao":"Ata de Sess\u00e3o 01","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-ata-de-sessao-01-1658939463.pdf","tipo":null,"data":"2022-07-27 00:00:00"},{"descricao":"Edital de Concorr\u00eancia","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-edital-de-concorrencia-1657812850.pdf","tipo":null,"data":"2022-07-27 00:00:00"},{"descricao":"Aviso de Licita\u00e7\u00e3o","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-aviso-de-licitacao-1657797988.pdf","tipo":null,"data":"2022-07-12 00:00:00"},{"descricao":"MINUTA DO CONTRATO","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-minuta-do-contrato-1658160342.docx","tipo":null,"data":"2022-02-27 00:00:00"}],"classificados":[],"desclassificados":[]}`; $teste=json_decode($p003);var_dump($teste); Para montar a variável $p003 eu tive que improvisar. O texto tem aspas simples e duplas ao mesmo tempo, e desconfio que é isso é que faz o PHP entender que o json não é válido. Para colocar o texto na variável eu usei as aspas inclinadas (é o acento agudo), e isso NÃO deu certo, o PHP insiste em reclamar que o $p003 é nulo, ou seja, não é um json válido. O resultado ficou assim: C:\wamp64\www\astudy\astudy.php:3: object(stdClass)[1] public 'pagina_total' => int 3 public 'pagina_atual' => int 1 public 'pagina_anterior' => null public 'pagina_proxima' => int 2 public 'registro_total' => int 21 public 'registro_atual' => int 10 C:\wamp64\www\astudy\astudy.php:6: object(stdClass)[2] public 'id' => int 54 public 'identificacao' => string 'Edital de Concorrência N° 22/000017' (length=37) public 'objeto' => string 'Contratação de empresa especializada para execução das obras de revitalização da área de entorno das piscinas e recuperação do parque aquático das unidades Sesc Praia e Sesc Beira Rio.' (length=194) public 'data_publicacao' => string '2022-08-19' (length=10) public 'data_abertura' => string '2022-09-06' (length=10) public 'local' => string 'Sesc Caixeral Parnaíba-PI' (length=27) public 'telefone' => string '86 3217-2852' (length=12) public 'email' => string 'licitasescpi@pi.sesc.com.br' (length=27) public 'processo' => string 'N° 22/000017' (length=13) public 'vencedores' => array (size=0) empty public 'responsavel' => string 'Supervisão de Licitação' (length=26) public 'valor' => string '' (length=0) public 'modalidade' => string 'Concorrência' (length=13) public 'documentos' => array (size=6) 0 => object(stdClass)[3] public 'descricao' => string 'Edital de Concorrência' (length=23) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-edital-de-concorrencia-1661169326.pdf' (length=100) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 1 => object(stdClass)[4] public 'descricao' => string 'Anexo IV' (length=8) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-anexo-iv-1660909754.pdf' (length=86) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 2 => object(stdClass)[5] public 'descricao' => string 'Anexo III' (length=9) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-anexo-iii-1660909732.pdf' (length=87) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 3 => object(stdClass)[6] public 'descricao' => string 'ANEXO II ' (length=9) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-anexo-ii-1660909699.pdf' (length=86) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 4 => object(stdClass)[7] public 'descricao' => string 'Anexo I' (length=7) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-anexo-i-1660909679.pdf' (length=85) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 5 => object(stdClass)[8] public 'descricao' => string 'Aviso de Licitação' (length=20) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-aviso-de-licitacao-1660909627.pdf' (length=96) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) public 'classificados' => array (size=0) empty public 'desclassificados' => array (size=0) empty C:\wamp64\www\astudy\astudy.php:9:null Fiz mais uma tentativa, tentei substituir todas as aspas simples por duplas. O Notepad+ não fez! Então, pedi para substituir todas as aspas simples por @, e depois o @ por aspas duplas. Também não deu certo. Estudando mais um pouco a variável $p003, eu percebi que o problema não é as aspas, mas é que havia um aspas que não deveria estar lá, assim EPI'S para atender. Eu arranquei na unha, e agora sim eu consegui converter o $p003 em json. O PHP é o melhor programa do mundo, quando funciona. Editado Agosto 30, 2022 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
paulo_henrique_cnl
Olá, boa tarde! Estou tentando retornar os dados de uma api mais retorna apenas vázio. Podem me ajudar?
$pagina = file_get_contents('http://transparencia.se.sesc.com.br/transparencia/api/licitacoes?type=json?page_size=1');
$page = json_decode($pagina);
print_r($page);
exit;
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.