PHP Curl получить данные

Я создал простой клиент PHP curl, который вызывает внешний веб-сервис. Этот веб-сервис возвращает XML.

<?php
// Method: POST, PUT, GET etc
// Data: array("param" => "value") ==> index.php?param=value
function CallAPI($method, $url, $data = false)
{
    $curl = curl_init();
    switch ($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);
            if ($data)
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            break;
        case "PUT":
            curl_setopt($curl, CURLOPT_PUT, 1);
            break;
        default:
            if ($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
    }
    // Optional Authentication:
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    curl_close($curl);

    return $result;
}
$response = CallAPI('GET','https://s1-en.ogame.gameforge.com/api/universes.xml');
var_dump($response);
//print string(1121) " "
?>

Но это всегда возвращает мне неправильное значение. Я печатаю string(1121) " ",

Как я могу получить данные вызова? (строка 41 в test.php).

1 ответ

Решение

Это связано с тем, что вы просматриваете результат в браузере, а браузер анализирует XML как допустимый HTML-тег. Таким образом, вы получите пустой результат.

Это не проблема вашего кода. ты можешь нажать ctrl + u (просмотреть источник) в браузере, чтобы увидеть фактический результат.

Или вы можете редактировать свой var_dump в echo htmlentities($response); на линии 41.

Другие вопросы по тегам