我想从基于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信息时,有没有办法发送用户?
答案 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);