PHP 卷曲获取数据

PHP Curl get data

我创建了一个调用外部网络服务的简单 PHP curl 客户端。此网络服务 return 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) " ".

如何获取通话数据? (test.php 中的第 41 行)。

这是因为您正在浏览器中查看结果,并且浏览器将 xml 解析为有效的 html 标记。所以你得到空结果。

这不是您的代码问题。您可以在浏览器中按 ctrl + u(查看源代码)查看实际结果。

或者您可以在第 41 行将 var_dump 编辑为 echo htmlentities($response);