PHP抓取基金净值并计算
2017-02-13 本文已影响85人
梁烨端木
富国基金净值
最近用蚂蚁聚宝的慧定投买了富国中证500指数增强这只基金,想要计算下每周扣款之后能拿到多少份额。所以写了个计算页面,目标是用PHP爬取富国基金公司官网上的富国中证500指数增强这只基金的当天净值,然后按照实际扣款金额计算出所得份额。
- 实际代码如下:
<?php
//抓取整个页面
$url="http://www.fullgoal.com.cn/";
$contents = file_get_contents($url);
//依据抓取 到的页面按照table进行过滤
$preg1='/<table[^>]*>(.*?) <\/table>/si';
$res2="";
preg_match_all($preg1,$contents,$res2);
$res3=$res2[0][9];
//echo $res3;
//将过滤后的table再次按照td进行过滤
$res4="";
preg_match_all('/<td[^>]*>(.*?) <\/td>/si',$res3,$res4);
$res5=$res4[0][0];
//将给字符串按照空格拆分成数组
$res6=explode(" ",$res5);
//得到最终的基金净值和时间
$funToday=$res6[27];
$funValueToday=$res6[45];
//对数据进行去空格和去html标签操作
$fund1=trim($funValueToday);
$fund2=strip_tags($fund1);
?>
<html>
<head>
<meta charset="utf-8" />
<title>慧定投计算器</title>
<style type="text/css">
/*全局样式设置*/
*{
margin:0px;
padding:0px;
}
body {
width:600px;
margin:10px auto;
font-size:14px;
}
input:hover {
border:1px solid #363636;
box-shadow: 2px 3px 2px #888888;
}
span {
padding:20px;
text-align: left;
}
/*局部设置*/
.div1 {
width: 600px;
margin: 0px auto;
text-align: center;
padding-top: 10px;
}
.divP p {
padding-top: 10px;
width:300px;
font-size:20px;
font-style: inherit;
text-align: center;
margin:0px auto;
}
.divP h2{
color: rgb(218,88,77);
font-size: 2em;
}
.titlename {
color: rgb(215,88,77);
}
input {
width: 250px;
height: 30px;
margin:5px auto;
text-align: left;
}
.subM {
font-weight: bold;
font-size: 22px;
width: 200px;
height: 30px;
text-align: center;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="div1">
<div class="img1">
<img src="http:https://img.haomeiwen.com/i4167376/d6f538037602f6cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" /><br />
</div>
<form action="huidingtou-fuguo.php" method="post" class="form1">
<div class="divP">
<p class="titlename"><h2>慧定投计算器</h2></p>
<p><h3>富国中证500指数增强</h3></p>
<p><?php echo "净值日期:".$funToday;?></p>
<p><strong>慧定投实际扣款额:</strong></p><input type="text" name="ShijikouK" class="zongFe"value= <?php echo @$_POST['ShijikouK'];?>>><br />
<input type="submit" value="计 算" class="subM" />
</div>
</form>
</div>
</body>
</html>
<?php
//抓取页面输入的数据
//实际扣款额
$ShijikouK=$_REQUEST['ShijikouK'];
//计算净申购额
$jingshenE=$ShijikouK/(1+0.0015);
//计算基金份额
$fundShare=$jingshenE/$fund2;
echo "<p style='font-size: 20px;text-align:center;padding-top:15px;'><strong>当天净值:</strong>".$fund2."元/份</p><p style='font-size: 20px;text-align:center;padding-top:15px;'><strong>净申购额:</strong>".round($jingshenE,2)."元</p><p style='font-size: 20px;text-align:center;padding-top:15px;'><strong>基金份额:</strong>".round($fundShare,2)."份</p>";
?>
最后效果:
PS:整体功能还很简陋,之后慢慢丰富吧T_T