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);
。
我创建了一个调用外部网络服务的简单 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);
。