从XML站点获取数据

时间:2014-10-08 07:39:18

标签: php xml

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

我试过了:

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

但我只能得到这个:

err En ReloginAttempt /wcd/index.html false

这是用于登录的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信息时,有没有办法发送用户?

1 个答案:

答案 0 :(得分:1)

您无法使用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);