我使用这个脚本来查找当天的每日访问量和总浏览量。
<?xml version="1.0" ?>
- <aws:UrlInfoResponse xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/">
- <aws:Response xmlns:aws="http://awis.amazonaws.com/doc/2005-07-11">
- <aws:UrlInfoResult>
- <aws:Alexa>
- <aws:TrafficData>
- <aws:UsageStatistic>
- <aws:TimeRange>
<aws:Months>1</aws:Months>
</aws:TimeRange>
- <aws:Rank>
<aws:Value>2426210</aws:Value>
<aws:Delta>-12536204</aws:Delta>
</aws:Rank>
- <aws:Reach>
- <aws:Rank>
<aws:Value>2757065</aws:Value>
<aws:Delta>-12015838</aws:Delta>
</aws:Rank>
- <aws:PerMillion>
<aws:Value>0.4</aws:Value>
<aws:Delta>+1200%</aws:Delta>
</aws:PerMillion>
</aws:Reach>
- <aws:PageViews>
- <aws:PerMillion>
<aws:Value>0.21</aws:Value>
<aws:Delta>+4000%</aws:Delta>
</aws:PerMillion>
- <aws:Rank>
<aws:Value>2206561</aws:Value>
<aws:Delta>-12826154</aws:Delta>
</aws:Rank>
- <aws:PerUser>
<aws:Value>3</aws:Value>
<aws:Delta>+200%</aws:Delta>
</aws:PerUser>
</aws:PageViews>
</aws:UsageStatistic>
</aws:UsageStatistics>
<aws:ContributingSubdomains />
</aws:TrafficData>
</aws:Alexa>
</aws:UrlInfoResult>
- <aws:ResponseStatus xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/">
<aws:StatusCode>Success</aws:StatusCode>
</aws:ResponseStatus>
</aws:Response>
</aws:UrlInfoResponse>
该文件保存在服务器的某个位置。
使用以下代码获取
$xml = simplexml_load_file("PATH To FILE", null, null, 'aws', true);
$pageview=$income_data->Response->UrlInfoResult->Alexa->TrafficData->UsageStatistics->UsageStatistic->PageViews->PerMillion->Value;
$daily_pageview=$pageview*10;
一切都很好,直到我发现结果不正确的几个域值。然后我尝试回显每个值,我发现它忽略了点(.)之后的值
[Like for example]
.02=>0
.100=>0
1.02=>1
在上面的例子中,$pageview=0.21
的值是0
,输出应该是2.1
。
我猜这是从SimpleXMLElement转换值的方式,至少这是下面所指向的。
<?php
$xml = '
<testdata>
<foo>1.2</foo>
</testdata>
';
$xml = new SimpleXMLElement($xml);
echo get_class($xml->foo); //SimpleXMLElement
echo 1.2 * 2; // 2.4
echo $xml->foo * 2; // 2
echo (float)$xml->foo * 2; // 2.4