Olá,boa noite a todos.
Estou com um problema e já não sei como arrumar, toda vez que uso o a função =
$json = file_get_contents('http://localhost/arquivo1.php');
$obj = json_decode($json);
echo $obj->nome;
Ele me retorna um erro = ( Trying to get property 'name' of non-object in )
Tenho 3 arquivos (Conexão.php,Arquivo1.php,Arquivo2.php)
Eles estão assim:
Arquivo1 =
require('conexão.php');
while ($row = $usuarios->fetch(PDO::FETCH_ASSOC)) {
$nomex = $row['nome'];
$datax = $row['data'];
$encoda= array('nome' => $nomex, 'data' => $datax );
echo json_encode($encoda);}
Arquivo2 =
$json = file_get_contents('http://localhost/arquivo1.php');
$obj = json_decode($json);
echo $obj->nome;
echo json_last_error_msg();
O erro acontece no Arquivo2
Já tentei por HTTP HEADER JSON Mas não adiantou,não sei mais o que fazer,se alguem puder ajudar. Agradecerei demais! Boa noite a todos.
To precisando de uma ajuda galera, to tendo retorno de uma API por um URL e ela me retornar o seguinte, abaixo um exemplo:
( [allDone] => 1 [starTime] => 2019-02-21T20:15:41.871318 [endTime] => 2019-02-21T20:15:45.58929 [executionResult] => Array ( [0] => stdClass Object ( [field] => busca_provider_spc_serasa_score [valid] => [observation] => {"Result":[{"MatchKeys":"doc{57279896049}","CreditData":[{"Origin":"SPC","QueryDate":"2019-02-21T00:00:00","BasicData":{"TaxIdNumber":"57279896049","TaxIdCountry":"Brazil","AlternativeIdNumbers":{"VoterRegistration":"6521890442"},"Name":"JANAIR LULA DA SILVA","Gender":"U","BirthDate":"1967-11-30T00:00:00","Age":51,"ZodiacSign":"SAGITARIO","MotherName":"MARIA LULA DA SILVA","TaxIdStatus":"","TaxIdOrigin":"SPC"},"PersonalRelationships":[{"RelatedEntityName":"MARIA LULA DA SILVA","RelationshipType":"MOTHER","RelationshipLevel":"DIRECT"}],"Emails":[],"Phones":[],"Addresses":[{"AddressMain":"R MONTEIO LOBATO","Number":"000107","Complement":"","Neighborhood":"","ZipCode":"95780000","City":"MONTENEGRO","State":"RS","Country":"Brazil"}],"TotalDebts":9217.06,"TotalCount":1,"TotalPreviousQueries":2,"PreviousQueries":[{"Origin":"SPC BRASIL - SAO PAULO / SP","QueryDate":"2019-02-21T00:00:00","Name":"BIG DATA SOLUCOES EM TECNOLOGIA","CityAndState":{"City":"RIO DE JANEIRO","State":"RJ"}},{"Origin":"SPC BRASIL - SAO PAULO / SP","QueryDate":"2019-02-16T00:00:00","Name":"BIG DATA SOLUCOES EM TECNOLOGIA","CityAndState":{"City":"RIO DE JANEIRO","State":"RJ"}}],"Occurrences":[{"Name":"PROTEST","TotalValue":9217.06,"TotalCount":1,"FirstOccurrenceDate":"0001-01-01T00:00:00","LastOccurrenceDate":"2019-01-09T00:00:00","AdditionalOutputData":{},"Details":[{"Origin":"","ExpiringDate":"0001-01-01T00:00:00","Date":"2019-01-09T00:00:00","Reason":"","Value":9217.06,"Count":1,"IssuingPeople":[],"IssuingCompanies":[{"TaxIdNumber":"","OfficialName":"UN","TradeName":"","Phones":[],"Addresses":[{"AddressMain":"","Number":"","Complement":"","Neighborhood":"","ZipCode":"","City":"MONTENEGRO","State":"RS","Country":"Brazil"}],"AdditionalOutputData":{"Contract":""}}],"AdditionalOutputData":{}}]}],"Score":{"Name":"SCORE 12 MONTHS","Class":"F","Horizon":"12","Probability":"0","Score":"0","ScoreType":"RESTRICTED","Reason":"O DOCUMENTO CONSULTADO APRESENTA REGISTRO(S) DE INADIMPLENCIA.","AdditionalOutputData":{}}}]}],"QueryId":"dcff3486-9efe-4628-a8f7-XXXXXXXXXXXX","ElapsedMilliseconds":3277.0,"Status":{"ondemand_credit_spc_score_12_months":[{"Code":0,"Message":"OK"}]}} [validationSource] => provider-spc-serasa-score [available] => 1 [similarity] => 0 ) ) [plds] => Array ( ) [approved] => [disaproveByRule] => [aditionalResponse] => Array ( ) )
Pessoal como visualizo "layoutizo" o retorno dessa API dentro do PHP?
Não manjo muito desses paranauê, mas consegui fazer umas coisa me baseando em códigos que achei na net, mas dei uma enroscada...
Tenho essa API: https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=agro3&interval=1min&outputsize=full&apikey=P75WUJJ5C52V1SY1
Que me trás algo assim:
{
"Meta Data": {
"1. Information": "Intraday (1min) prices and volumes",
"2. Symbol": "agro3",
"3. Last Refreshed": "2017-09-13 14:09:00",
"4. Interval": "1min",
"5. Output Size": "Full size",
"6. Time Zone": "US/Eastern"
},
"Time Series (1min)": {
"2017-09-13 14:09:00": {
"1. open": "12.7400",
"2. high": "12.7400",
"3. low": "12.7400",
"4. close": "12.7400",
"5. volume": "200"
},
"2017-09-13 14:08:00": {
"1. open": "12.7200",
"2. high": "12.7200",
"3. low": "12.7200",
"4. close": "12.7200",
"5. volume": "400"
},
"2017-09-13 14:03:00": {
"1. open": "12.7200",
"2. high": "12.7200",
"3. low": "12.7200",
"4. close": "12.7200",
"5. volume": "100"
},
"2017-09-13 13:57:00": {
"1. open": "12.7400",
"2. high": "12.7400",
"3. low": "12.7400",
"4. close": "12.7400",
"5. volume": "500"
E estou tentando tratar ela com o código:
<?php
$ativo = 'CARD3';
header('Content-Type: application/json; charset=utf-8');
$json = file_get_contents('https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol='.urlencode($ativo).'&interval=1min&outputsize=compact&apikey=P75WUJJ5C52V1SY1');
$obj = json_decode($json, true);
//pegar data da ultima atualização
foreach ($obj['Meta Data'] as $periodo)
{
echo $periodo. ' | ' ;
}
//pegar valor de fechamento
foreach ($obj['Time Series (1min)']['2017-09-12 15:55:00'] as $close)
{
echo $close. ' | ';
}
Até certo ponto está funcionado (apesar de dar umas bugadas de vez e quando qdo a data muda), estou conseguindo o esse resultado:
Intraday (1min) prices and volumes | CARD3 | 2017-08-30 16:09:00 | 1min | Compact | US/Eastern | 9.7000 | 9.9000 | 9.6300 | 9.6500 | 209200 |
Porem eu queria pegar só duas informações especificas dessa API, que seria o "3. Last Refreshed" para identificar o horário mais atual e jogar em uma variável, e com ela identificar o valor do "4. close" mais recente...
Pelo que eu achei que tinha entendido, seria só colocar o caminho todo, tipo :
($obj['Time Series (1min)']['2017-08-30 16:09:00']['4. close']
mas se faço isso da erro:
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/storage/ssd2/526/2780526/public_html/newEmptyPHP.php</b> on line <b>14</b><br />
Poderiam me dar uma luz?