打造自己的奥运奖牌榜


Written on 八月 10, 2008 – 12:10 上午 | by paopao

今天是奥运第一天,决出了7块金牌,7块银牌,9块铜牌。相信大家对奖牌榜都是很关注的,一般我是看新浪体育的奖牌榜的。不过为了把奖牌榜转载到BBS上,想要弄一个ASCII版的。我是个懒人,不想每次更新奖牌榜的时候都重新手动做一遍,就用php写了个类,主要是从新浪体育抓取奖牌榜数据,然后输出成ASCII的格式。

class MedalBoard {
	public $sourceURL, $status, $data, $countrycount;

	public function __construct() {
		$sourceURL = 'http://match.2008.sina.com.cn/bj2008/all_medal.php';
		if( $doc = file_get_contents($sourceURL) ){
			$posa = strpos($doc, '<!-- Status begin -->');
			$posb = strpos($doc, '<!-- Status end -->');
			$posc = strpos($doc, '<!-- 数据 begin -->');
			$posd = strpos($doc, '<!-- 数据 end -->');
			$statuspart = substr($doc, $posa, $posb - $posa);
			$datapart = substr($doc, $posc, $posd - $posc);
			if(!preg_match("/<h1>(.*)</h1>[^<]*<span[^>]*>([^<]*)</span>.*[^<]*<label><img[^>]*> ([^<]*)</label>[^<]*<label><img[^>]*> ([^<]*)</label>[^<]*<label><img[^>]*> ([^<]*)</label>/i", $statuspart, $this->status))
				$this->status = false;
			$this->countrycount = preg_match_all("/<tr>[^<]*<td>(d*)</td>[^<]*<td align.*d">(.*)</a></td>[^<]*<td>(d*)</td>[^<]*<td>(d*)</td>[^<]*<td>(d*)</td>[^<]*<td>(d*)</td>[^<]*<!--	<td>d*<[^<]*</tr>/i", $datapart, $this->data, PREG_SET_ORDER);
		} else
			echo "Get content: '".$sourceURL."' error!rn";
	}

	public function ascii() {
		$result ="                 2008北京奥运会 ".$this->status[1]."nn";
		$result .="                        ".$this->status[2]."nn";
		$result .= "           排名  国家/地区    金牌  银牌  铜牌  总数n";
		foreach($this->data as $items) {
			$result .= "           ";
			if(($items[2] == '中国') || ($items[2] == '中国香港') || ($items[2] == '中华台北')) {
				$result .= sprintf("%-6s",$items[1]);
				$result .= sprintf("%-13s",$items[2]);
			} else {
				$result .= sprintf("%-6s",$items[1]);
				$result .= sprintf("%-13s",$items[2]);
			}
			$result .= sprintf("%-6s",$items[3]);
			$result .= sprintf("%-6s",$items[4]);
			$result .= sprintf("%-6s",$items[5]);
			$result .= sprintf("%-3s",$items[6]);
			$result .= "n";
		}
		return $result;
	}
}

如果你不喜欢网上看到的奖牌榜的外观,也可以用这个类来做一个自己的奖牌榜,比如弄一个和自己blog色调比较搭配的奖牌榜摆在侧边栏,只要加一个不同的输出格式的函数就行了,不过我是懒得弄了,想要自己做的朋友可以随意拿去用 ^_^

Popularity: 26% [?]

Tags: ,

  1. 4 Responses to “打造自己的奥运奖牌榜”

  2. Gravatar

    By Kimcool on 八 10, 2008 | Reply | Quote

    不懂不懂…

  3. Gravatar

    By pozhen on 八 16, 2008 | Reply | Quote

    怎么弄的能不能说的具体点?
    谢谢!!

  4. Gravatar

    By oki on 八 22, 2008 | Reply | Quote

    原来奖牌榜的帖子这么有技术含量的。。。
    本来还在纳闷,难道你一整天就是坐在电视机前面盯着各种比赛么。。。

  5. Gravatar

    By 最新电影 on 十 7, 2008 | Reply | Quote

    早点知道就好了

Post a Comment