从XML站点获取数据


Get data from XML sites

我想从一个基于xml的站点获取一些数据
问题是我需要以没有密码的PublicUser身份登录到它。

我试过:

$url = 'http://IP/wcd/system_counter.xml';
$content = file_get_contents($url);
echo $content

但我只得到这个:

err En ReloginAttempt /wcd/index.html false

这是用于loggin:的xml代码

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="top.xsl" type="text/xsl"?>
<MFP>
<SelNo>Auto</SelNo>
<LangNo>En</LangNo>
<Service><Setting><AuthSetting><AuthMode><AuthType>None</AuthType>
<ListOn>false</ListOn>
<PublicUser>true</PublicUser>
<BoxAdmin>false</BoxAdmin>
</AuthMode><TrackMode><TrackType>None</TrackType></TrackMode></AuthSetting>
<MiddleServerSetting><ControlList><ArraySize>0</ArraySize></ControlList><Screen>
<Id>0</Id></Screen></MiddleServerSetting>
</Setting></Service><LangDummy>false</LangDummy></MFP>

当我想获得XML信息时,有没有一种方法可以发送给用户?

您无法使用file_get_contents访问需要发布登录信息的页面。相反,你需要使用卷曲。大致如下:

$ch = curl_init($url); // The url you want to call
curl_setopt_array(
    $ch, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_POST           => 1,
        CURLOPT_POSTFIELDS     => $login_xml, // The xml login in string form
    )
);
//getting response from server
$response = curl_exec($ch);
echo curl_error($ch);
curl_close($ch);