首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将整数值与从php中的xml文档获取的值相乘时的异常行为。

将整数值与从php中的xml文档获取的值相乘时的异常行为。
EN

Stack Overflow用户
提问于 2013-04-14 20:34:14
回答 1查看 62关注 0票数 0

我使用这个脚本来找出每天的访问者和总的页面浏览量的一天。

代码语言:javascript
复制
 <?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>

此文件保存在服务器中的某个位置。

使用下面的代码获取

代码语言:javascript
复制
$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;

一切都很好,直到我发现一些域值的结果并不正确。然后我尝试回显每个值,我发现它忽略了点(.)之后的值。

代码语言:javascript
复制
[Like for example]
.02=>0
.100=>0
1.02=>1

在上面的例子中,$pageview=0.21和output的值是0,但它应该是2.1

这方面的任何帮助都将不胜感激..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-14 20:41:39

我猜这就是从SimpleXMLElement转换值的方式,至少下面的内容是这样的。

代码语言:javascript
复制
<?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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15999121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档