Когда в PHP запрашивается URL "http://api.srinivasajewellery.com/getrate/getrate
" с настройками по умолчанию, он возвращает данные в формате JSON. Какой может будет еще проще проанализировать в этом случае:
<?php
$url = "http://api.srinivasajewellery.com/getrate/getrate";
$json = json_decode(file_get_contents($url));
echo '$GRate: ' . $json->GRate, "\n";
Вывод:
$GRate: 3670.00
Это можно легко проверить, выбрав URL-адрес и дословно выведя его:
$buffer = file_get_contents($url);
echo $buffer, "\n";
{"GRate":"3670.00","SRate":"50.00","PRate":"0.00"}
Как было продемонстрировано Виджаем Дохар , можно сказать этому серверу, что XML предпочтительнее. Проверить, работает ли это, возможно и так:
stream_context_get_default(['http' => ['header' => 'Accept: application/xml']]);
$buffer = file_get_contents($url);
echo $buffer, "\n";
Вывод не так уж и украшен (я думаю, что если данных больше, JSON будет не так легко прочитать). как это также увеличилось бы):
<GetRateController.Rate xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Savings.Controllers"><GRate>3670.00</GRate><PRate>0.00</PRate><SRate>50.00</SRate></GetRateController.Rate>
Это может быть похоже на открытие URL в браузере. Это связано с тем, что браузер также отправляет заголовок запроса Accept
, который также содержит XML:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Поскольку браузер обычно также принимает XML (хотя предпочитает HTML-файл).
Таким образом, в конечном итоге это зависит от того, что вы предпочитаете. Либо JSON, который является менее многословным по сравнению с XML (см. Самый первый пример кода выше), либо, если вы хотите использовать XML с SimpleXML:
<?php
$url = "http://api.srinivasajewellery.com/getrate/getrate";
stream_context_get_default(['http' => ['header' => 'Accept: application/xml']]);
$xml = simplexml_load_file($url) or die("not open");
echo '$GRate: ' . $xml->GRate, "\n";
Вывод:
$GRate: 3670.00