+ -
当前位置:首页 → 问答吧 → 中国银行外汇牌价抓取

中国银行外汇牌价抓取

时间:2007-07-24

来源:互联网

公司业务需要,自己写的,很简单只要能看懂正则表达式就可以了。
复制PHP内容到剪贴板
PHP代码:

<?php
set_time_limit(0);
$code =file_get_contents("http://www.boc.cn/cn/common/whpj.html");
preg_match_all("/<table class=font12([\S \r\n]*)<\/table>/",$code,$out);   //所有牌价信息位于一个class为font12的table中,先提取table
$code2 =preg_replace("/<\/?[^>]*>/","",$out[0][0]);  //将所有的html代码过滤到<>里面的内容去掉
$code3= preg_replace("/\n\s*\r/","",$code2);  //去除空白行
$arr =split("\r\n",trim($code3));  //写入数组
for($i=0;$i<126/7;$i++){
    $code4 .=trim($arr[$i*7])."|".trim($arr[$i*7+1])."|".trim($arr[$i*7+2])."|".trim($arr[$i*7+3])."|".trim($arr[$i*7+4])."|".trim($arr[$i*7+5])."|".trim($arr[$i*7+6])."\r\n";  //每七个元素为一组,是一个币种的牌价
}
if(!file_exists(realpath("./")."\\wh\\".date("Y-m-d",mktime())."-".str_replace(":","-",trim($arr[125])).".txt")){
file_put_contents(realpath("./")."\\wh\\".date("Y-m-d",mktime())."-".str_replace(":","-",trim($arr[125])).".txt",$code4);
echo date("Y-m-d",mktime())." ".$arr[125]." 采集成功!";}

?>

作者: morsth   发布时间: 2007-07-24

专业的

作者: pack08   发布时间: 2007-07-24

不错大力支持

作者: maikongjian11   发布时间: 2007-07-27

不错......强大的正则程序.



作者: londit.cn   发布时间: 2007-08-28

恩不错.如果能有解释那就最好不过了

作者: 逆雪寒   发布时间: 2007-08-28

不错啊,有才啊。

作者: kobejiang   发布时间: 2007-09-07