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.