1

我目前正在为一个客户做一些工作,该客户恰好是魔兽世界游戏的视频游戏组。

他们想在他们的网站上显示他们当前的评级。

评级显示在这里

他们希望在他们的网站上显示“Oceanic”的号码和“US”的号码。

有没有人能告诉我一种方法,如果这些数字发生变化,我可以在网站上自动更新这些数字?

谢谢!

4

4 回答 4

2

您可以使用此代码段来废弃数据 - 假设 PHP 没问题,因为您正在运行 wordpress。我会将这些值保存在数据库/扁平线/缓存中。

<?php

$data = file_get_contents('http://www.wowprogress.com/guild/us/caelestrasz/Crimson/rating.tier13_25');

$oceanic = explode('<dt>Oceanic: </dt>', $data);
$oceanic = substr($oceanic[1], 4, strpos($oceanic[1], '</dd>') - 4);

$us = explode('<dt>US: </dt>', $data);
$us = substr($us[1], 4, strpos($us[1], '</dd>') - 4);

echo 'Oceanic: ' . $oceanic . "<br />\n";
echo 'US: ' . $us . "<br />\n";
于 2011-12-21T19:04:25.990 回答
1

这很容易。我更喜欢使用simplehtmldom,但您也可以使用内置的 php dom 解析方法。

require 'simple_html_dom.php';
$html = file_get_html('http://www.wowprogress.com/guild/us/caelestrasz/Crimson/rating.tier13_25');
$xxx = $html->find('div.guildStats dl dd');

foreach($xxx as $k)
echo $k->plaintext."\n";
于 2011-12-21T19:22:07.310 回答
0

由于跨域安全性,您无法使用 javascript 执行此操作,如果您可以访问它,则必须获取您的信息服务器端。

于 2011-12-21T19:00:47.550 回答
0

这是 RegEx 的解决方案。

<?php

$data = implode('', file('http://www.wowprogress.com/guild/us/caelestrasz/Crimson/rating.tier13_25'));
$pat_world = '/<span class="rank blue">(\d+)<\/span>/';
$pat_us = '/<dt>US:\D+(\d+)/';

preg_match($pat_world, $data, $world);
preg_match($pat_us, $data, $us);

echo $world[1];
echo "\n\n";
echo $us[1];

我知道每个人都反对网络抓取的正则表达式,但我认为它在这样的简单情况下效果很好。

于 2011-12-21T19:12:38.767 回答