【问题标题】:Pull data from a page and add it to a PHP file从页面中提取数据并将其添加到 PHP 文件中
【发布时间】:2016-05-07 13:49:37
【问题描述】:

我正在尝试创建一个使用来自页面的数据的 PHP 页面(例如:http://services.runescape.com/m=hiscore/index_lite.ws?player=DisplayName)。将“DisplayName”更改为另一个名称会更改显示的数字的值。

这是我试图从中提取数据的页面中显示的代码:

665249,1159,37778175 559762,75,1214453 1014682,45,67435 287248,91,6088249 391910,86,3747242 133650,99,13759525 599855,52,125572 264389,94,8032896 -1,1,-1 375977,82,2480819 676548,46,71298 346696,76,1430070 841961,50,105600 843793,41,42078 1178160,20,4481 1092128,32,17847 763021,18,3685 498978,51,121383 485421,53,145460 455992,59,263171 519344,32,17930 -1,1,-1 -1,1,-1 552229,40,37356 -1,1,-1 -1,1,-1 -1,1,-1 -1,0,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 

基本上,每个数字对应一个值。格式如下:

xxx,xxx,xxx xxx,xxx,xxx

第一个数字代表玩家在技能分数中的位置,第二个数字代表相应技能的等级,第三个数字代表技能累积的总经验。依次出现一个空格,表示正在“描述”一项新能力,格式相同(职位、等级、经验)。

因此可以描述为:

position,level,experience position,level,experience position,level,experience

我尝试了一些在网上找到的代码并尝试对其进行调整,但我没有设法使它们工作。

你知道我如何创建一个可以放入 HTML 模板中的有效 PHP 代码吗?

可以在这里找到更好的数据描述:http://services.runescape.com/m=rswiki/en/Hiscores_APIs

感谢您的帮助,

艾比

编辑:

<?php
header('Content-type: application/json');
require_once 'Runescape_API.class.php';

$rsapi = new Runescape_API;
//Hiscore
if($ressource = $rsapi->getHiscore("Eibe")){
    $result["getHiscore"] = $ressource;
}
//Combat Level
if($ressource = $rsapi->getCombatLevel("Eibe")){
    $result["getCombatLevel"] = $ressource;
}
//Player Clan
if($ressource = $rsapi->getClanByPlayer("Eibe")){
    $result["getClanByPlayer"] = $ressource;
}
//Clan Members
if($ressource = $rsapi->getClanMembers("Loyals")){
    $result["getClanMembers"] = $ressource;
}
//Events
if($ressource = $rsapi->getEvents('archived')){
    $result["getEvents"] = $ressource;
}
//Events By Player
if($ressource = $rsapi->getEventsByPlayer('Eibe','archived')){
    $result["getEventsByPlayer"] = $ressource;
}
//Beast
if($ressource = $rsapi->getBeastById(49)){
    $result["getBeastById"] = $ressource;
}
//Search Beasts
if($ressource = $rsapi->searchBeasts('kuh',1)){
    $result["searchBeasts"] = $ressource;
}
//Beast Cataloque
if($ressource = $rsapi->getBeastCataloque('a',1)){
    $result["getBeastCataloque"] = $ressource;
}
//Area Names
if($ressource = $rsapi->getAreaNames()){
    $result["getAreaNames"] = $ressource;
}
//Beasts area
if($ressource = $rsapi->getBeastsByArea("Bank")){
    $result["getBeastsByArea"] = $ressource;
}
//Slayer names
if($ressource = $rsapi->getSlayerCatNames("Bank")){
    $result["getSlayerCatNames"] = $ressource;
}
//Beasts by slayer cat
if($ressource = $rsapi->getBeastsBySlayerCat(96)){
    $result["getBeastsBySlayerCat"] = $ressource;
}
//memberStatus, returns true|false and null by failure
$ressource = $rsapi->getMemberStatus("Glotzfrosch");
if($ressource !== NULL){
    $result["getMemberStatus"] = $ressource;
}/*
//Quests
if($ressource = $rsapi->getQuests("Glotzfrosch")){
    $result["getQuests"] = $ressource;
}*/
//recent player events
if($ressource = $rsapi->getRecentPlayerEvents("Drumgun")){
    $result["getRecentPlayerEvents"] = $ressource;
}
//item information
if($ressource = $rsapi->getItemInformation(444,"br")){
    $result["getItemInformation"] = $ressource;
}
//item price
if($ressource = $rsapi->getPriceInformation(444,"br")){
    $result["getPriceInformation"] = $ressource;
}
//item cataloque
if($ressource = $rsapi->getItemCataloque(2)){
    $result["getItemCataloque"] = $ressource;
}
//items by cataloque
if($ressource = $rsapi->getItemsByCataloque(12,"a",20)){
    $result["getItemsByCataloque"] = $ressource;
}
//player avatar urls
if($ressource = $rsapi->getPlayerAvatars("Drumgun")){
    $result["getPlayerAvatars"] = $ressource;
}
//news
if($ressource = $rsapi->getNews(2)){
    $result["getNews"] = $ressource;
}
//Hiscore for oldschool runescape
if($ressource = $rsapi->getHiscore07("xMorgan")){
    $result["getHiscore07"] = $ressource;
}

echo json_encode($result);
?>

使用此处找到的 RuneScape_API.class.php 文件http://pastebin.com/0Q2Qguux

注意:我什至不确定这些文件是否符合我的要求。我是一个初学者。

【问题讨论】:

  • 您的问题是什么?你想把那个字符串解析成一个数组吗?
  • @mikeyq6 我已经用我尝试过的代码更新了问题。
  • @dan08 是的,我想以这种方式在 html 页面中显示代码: AbilityName: level totalxp AbilityName: 级别 totalxp

标签: php html json api


【解决方案1】:

先获取url内容并进行相应解析。

例如:

$url = "http://services.runescape.com/m=hiscore/index_lite.ws?player=DisplayName";
$f = file_get_contents($url);
$items = explode(' ', $f);

在 $items 中,您将拥有所有玩家 xxx,xxx,xxx。当然,这取决于文件中分隔玩家的空格。

然后您可以解析 $items 中的每个单独元素 - 可能使用相同的 explode() 函数 - 以获取您正在寻找的信息。例如做这样的事情:

foreach($items as $item){
    $player = explode(",", $item);
    // $player[0] - will contain the first number
    // $player[1] - will contain second
    // $player[3] - will contain third
}

【讨论】:

  • 如何解析它们?我在互联网上搜索了一些示例,但找不到与我需要解析的文件中显示的内容相似的任何内容。
  • 我应该使用PHP数组函数吗?
  • 嗨@Eibe。使用我上面给你的代码,然后用 foreach 解析所有项目......你应该没问题。
  • @Elbe 看到我上面的编辑。在那里,您可以解析每个 $item 以获取单个玩家的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 2018-04-25
相关资源
最近更新 更多