Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 导入2018年NFL分数的XML-新XML?_Php_Xml_Google Sheets_Feed - Fatal编程技术网

Php 导入2018年NFL分数的XML-新XML?

Php 导入2018年NFL分数的XML-新XML?,php,xml,google-sheets,feed,Php,Xml,Google Sheets,Feed,去年,我收到了IMPORTXML,这样我就可以获得谷歌表单的实时评分更新。我今天用它为2018年做准备,但它仍然在拉去年的数据。我不知道如何才能获得今年所需的信息,如果信息发生了变化或者时间太短。我希望有人有多一点的知识,也许可以指导我或e点在正确的方向 =importxml("http://www.nfl.com/liveupdate/scorestrip/ss.xml","//g/@eid" ) 这是我使用过的领域之一,而且它仍在拉动2017年。谢谢 看起来XML服务已经停止使用或者不太容

去年,我收到了IMPORTXML,这样我就可以获得谷歌表单的实时评分更新。我今天用它为2018年做准备,但它仍然在拉去年的数据。我不知道如何才能获得今年所需的信息,如果信息发生了变化或者时间太短。我希望有人有多一点的知识,也许可以指导我或e点在正确的方向

=importxml("http://www.nfl.com/liveupdate/scorestrip/ss.xml","//g/@eid" )

这是我使用过的领域之一,而且它仍在拉动2017年。谢谢

看起来XML服务已经停止使用或者不太容易找到

然而,我相信这个站点是一个JSON等价物

这个网站也提供实时数据,你可以按日期选择

在查看第一个链接的输出后,看起来您可以从中获得正在进行的比赛和安排的比赛,然后使用引用为第二个链接中的完整比赛细节选择特定的比赛

下面是一个函数,您可以使用它将结果输入谷歌表单,并显示所选字段

要安装和使用它,请阅读以下说明:

在工作表中选择一个单元格,然后输入=ReadNFLResults

要定期运行脚本(如每2分钟一次),请按照以下说明操作

以下是截至2018年9月10日的样本结果:

试试这个:


看起来您必须为季节、类型和星期指定查询字符串参数,但输出可能相同。

这是我的脚本。它工作得很好。别忘了设置脚本触发器,使其每分钟自动运行一次,或者以您希望的频率运行一次

function GetNFLScore(){

var url = ('http://www.nfl.com/liveupdate/scores/scores.json');
var res = UrlFetchApp.fetch(url);
var content = res.getContentText();
var json = JSON.parse(content);   
var bye = "";

// Extracts the keys (these change every week)
var keys = [];
for(var k in json) keys.push(k);

// Declare array for results
var NFLResults =[];

// Make a Title Row
NFLResults.push(["Qtr","Time","Home","Pts","Away","Pts","Pos.","Down","To Go","Yard Line","Note","Network"]);

// Extracts the Games one per line
for(n=0; n<keys.length; n++)  {   
  var Clock = json[keys[n]]["clock"];                 // Kickoff time if pregame, Game Clock if game time
  var Qtr = json[keys[n]]["qtr"];                     // Gamestate (Pre, or Final), Game quater if game time
  var Home = json[keys[n]]["home"]["abbr"];           // Home Team
  var HsT = json[keys[n]]["home"]["score"]["T"];      // Home Total Score
  var Away = json[keys[n]]["away"]["abbr"];           // Away Team
  var AsT = json[keys[n]]["away"]["score"]["T"];      // Away Total Score
  var TV = json[keys[n]]["media"]["tv"];              // TV Network (NBC, FOX, ESPN, ect..)
  var YardLine = json[keys[n]]["yl"];                 // Current scrimage yard line
  var PosTeam = json[keys[n]]["posteam"];             // Team with ball possession
  var RedZone = json[keys[n]]["redzone"];             // Redzone boolean
  var Down = json[keys[n]]["down"];                   // Current Down
  var ToGo = json[keys[n]]["togo"];                   // Current To Go yardage for 1st down
  var Note = json[keys[n]]["note"];                   // Scoring play (Touchdown, Field Goal, Extra Point, Safety)

  // Correcting team abbr
  if( Home == "JAC" ){ Home = "JAX";}                 // JAC > JAX
  else if( Home == "WAS" ){ Home = "WSH";}            // WAS > WSH
  else if( Home == "LA"  ){ Home = "LAR";}            // LA > LAR

  if( Away == "LA"  ){ Away = "LAR";}      
  else if( Away == "WAS" ){ Away = "WSH";}
  else if( Away == "JAC" ){ Away = "JAC";}

  // Clear non-score related game data if game is final
  if( Qtr == "Final" ){ 
    Clock = "";
    PosTeam = "";
    RedZone = "";
    Down = "";
    ToGo = "";
    Note = "";
    TV = "";
  } 
  else if( Qtr == "Final OT" ){ 
    Clock = "";
    PosTeam = "";
    RedZone = "";
    Down = "";
    ToGo = "";
    Note = "";
    TV = "";
  }

  // Display Game data
  NFLResults.push([Qtr,Clock,Home,HsT,Away,AsT,PosTeam,Down,ToGo,YardLine,Note,TV]);
}

// Clear the bottom of the scoreboard from lack of scores caused by bye weeks
var rows = NFLResults.length
for(n=0; n<(17-rows); n++) {
  NFLResults.push([bye,bye,bye,bye,bye,bye,bye,bye,bye,bye,bye,bye]);   // N'SYNC
}

// Create new tab 'NFL Scores' if it doesn't exist.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var itt = ss.getSheetByName('NFL Scores');
if (!itt) {

    ss.insertSheet('NFL Scores');
}

// Push Scoreboard to spreadsheet
SpreadsheetApp.getActive().getSheetByName('NFL Scores').getRange(1,1,17,12).setValues(NFLResults);

}

我真的希望这个链接显示更新的分数。然而,现在是美国东部时间晚上9:21,没有任何更新。我希望p,我认为它代表着控球权,能够显示ATL!我知道很多关于NFL的事情,但是检查一下这个提要,看看是否有更好的。最后一个链接似乎是对个人比赛进行现场直播,而不仅仅是我认为你们想要的现场得分摘要。真的!它有分数,还有更多。基本上是整个播放顺序。我正在尝试快速解析它!干杯或者这可能更简单,我想我之前已经看过了,并确定数据是指定一周比赛的最终结果,以及本周计划的比赛列表。另一个答案中的链接在播放过程中提供实时更新。也许看看他们,看看你怎么想?干得不错-
function GetNFLScore(){

var url = ('http://www.nfl.com/liveupdate/scores/scores.json');
var res = UrlFetchApp.fetch(url);
var content = res.getContentText();
var json = JSON.parse(content);   
var bye = "";

// Extracts the keys (these change every week)
var keys = [];
for(var k in json) keys.push(k);

// Declare array for results
var NFLResults =[];

// Make a Title Row
NFLResults.push(["Qtr","Time","Home","Pts","Away","Pts","Pos.","Down","To Go","Yard Line","Note","Network"]);

// Extracts the Games one per line
for(n=0; n<keys.length; n++)  {   
  var Clock = json[keys[n]]["clock"];                 // Kickoff time if pregame, Game Clock if game time
  var Qtr = json[keys[n]]["qtr"];                     // Gamestate (Pre, or Final), Game quater if game time
  var Home = json[keys[n]]["home"]["abbr"];           // Home Team
  var HsT = json[keys[n]]["home"]["score"]["T"];      // Home Total Score
  var Away = json[keys[n]]["away"]["abbr"];           // Away Team
  var AsT = json[keys[n]]["away"]["score"]["T"];      // Away Total Score
  var TV = json[keys[n]]["media"]["tv"];              // TV Network (NBC, FOX, ESPN, ect..)
  var YardLine = json[keys[n]]["yl"];                 // Current scrimage yard line
  var PosTeam = json[keys[n]]["posteam"];             // Team with ball possession
  var RedZone = json[keys[n]]["redzone"];             // Redzone boolean
  var Down = json[keys[n]]["down"];                   // Current Down
  var ToGo = json[keys[n]]["togo"];                   // Current To Go yardage for 1st down
  var Note = json[keys[n]]["note"];                   // Scoring play (Touchdown, Field Goal, Extra Point, Safety)

  // Correcting team abbr
  if( Home == "JAC" ){ Home = "JAX";}                 // JAC > JAX
  else if( Home == "WAS" ){ Home = "WSH";}            // WAS > WSH
  else if( Home == "LA"  ){ Home = "LAR";}            // LA > LAR

  if( Away == "LA"  ){ Away = "LAR";}      
  else if( Away == "WAS" ){ Away = "WSH";}
  else if( Away == "JAC" ){ Away = "JAC";}

  // Clear non-score related game data if game is final
  if( Qtr == "Final" ){ 
    Clock = "";
    PosTeam = "";
    RedZone = "";
    Down = "";
    ToGo = "";
    Note = "";
    TV = "";
  } 
  else if( Qtr == "Final OT" ){ 
    Clock = "";
    PosTeam = "";
    RedZone = "";
    Down = "";
    ToGo = "";
    Note = "";
    TV = "";
  }

  // Display Game data
  NFLResults.push([Qtr,Clock,Home,HsT,Away,AsT,PosTeam,Down,ToGo,YardLine,Note,TV]);
}

// Clear the bottom of the scoreboard from lack of scores caused by bye weeks
var rows = NFLResults.length
for(n=0; n<(17-rows); n++) {
  NFLResults.push([bye,bye,bye,bye,bye,bye,bye,bye,bye,bye,bye,bye]);   // N'SYNC
}

// Create new tab 'NFL Scores' if it doesn't exist.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var itt = ss.getSheetByName('NFL Scores');
if (!itt) {

    ss.insertSheet('NFL Scores');
}

// Push Scoreboard to spreadsheet
SpreadsheetApp.getActive().getSheetByName('NFL Scores').getRange(1,1,17,12).setValues(NFLResults);

}