жрет чтение значения из ответа

Я использую Guzzle с Laravel, чтобы получить объект из внешнего API с HTTP. API возвращает XML-объект, похожий на этот (https://www.w3schools.com/php/note.xml)

Мне нужно проверить одно значение тела ответа. Вот мой код:

$client = new \GuzzleHttp\Client();
$res = $client->request('GET', 'https://www.w3schools.com/php/note.xml');
$stringBody = (string) $res->getBody()->getContents();
echo $stringBody;

который работает нормально, я имею в виду, что он отображает тело как на картинке ниже
введите описание изображения здесь

но я не мог получить одно значение?
Я пробовал разные методы, но ни один из них не работает!
например, так:

$result = starts_with($stringBody, 'Tove');

или же

splitName = explode(' ', $res->getBody());
$first_name = $splitName[0];
echo $first_name;

не работает? Я думаю, что он считает основной текст пустым?

Я пытался использовать json_decode, но он не работает или больше не поддерживается.

Любая идея?
Спасибо

0

Решение

То, что вы получаете от ответа, является XML-контентом. Благодаря совместимости браузера с XML вы видите только текст. Вам просто нужен класс php SimpleXML для получения контента в соответствии с узлом XML. Вот пример кода

    $client = new \GuzzleHttp\Client();
$res = $client->request('GET', 'https://www.w3schools.com/php/note.xml');
$stringBody = (string) $res->getBody()->getContents();
$xml =  simplexml_load_string($stringBody);
echo $xml->to;

Надеюсь, это поможет вам.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector