我想从一个基于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);