Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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 没有属性的简单Dom HTML标记_Php_Simple Html Dom - Fatal编程技术网

Php 没有属性的简单Dom HTML标记

Php 没有属性的简单Dom HTML标记,php,simple-html-dom,Php,Simple Html Dom,你好,我正试图从ESPN.com上调回花名册信息。每个队的花名册都保存在一张表中。我试图找到一种方法将每个标签保存到一个变量中,但是每个标签都没有诸如“jersey_number”/“player_name”这样的ID,因此通过该方法进行搜索会给我带来一些问题。这是我到目前为止所拥有的——如果你能给我一个或两个指针,我将不胜感激 <?php require_once("../tools/simple_html_dom.php"); require_once("../

你好,我正试图从ESPN.com上调回花名册信息。每个队的花名册都保存在一张表中。我试图找到一种方法将每个标签保存到一个变量中,但是每个标签都没有诸如“jersey_number”/“player_name”这样的ID,因此通过该方法进行搜索会给我带来一些问题。这是我到目前为止所拥有的——如果你能给我一个或两个指针,我将不胜感激

    <?php
    require_once("../tools/simple_html_dom.php");
    require_once("../tools/Utilities.php");
    $url = "http://espn.go.com/nfl/team/roster/_/name/den/denver-broncos";

    $espnHTML = file_get_html("http://espn.go.com/nfl/team/roster/_/name/den/denver-broncos");



    foreach($espnHTML->find("table.tablehead",0)->find('tr[class^=odd]') as $rosterRow)
    {
        foreach($rosterRow->find("td") as $playerInfo)
        {
            echo $playerInfo->plaintext."<br>";   
        }

    }
   ?>


如何在没有“ID”的情况下将这些td标记分配到适当的变量中?附件是一个示例截图,可以帮助您理解我所说的内容

如果每个玩家的列顺序相同,使用
$rosterrow->find(“td”)
应该返回一个索引数组,您可以使用
$playerrow[0..n]
访问该数组。 然后,通过分析与您可以创建如下函数相对应的内容:

$players = array();
foreach($espnHTML->find("table.tablehead",0)->find('tr[class^=odd]') as $rosterRow)
{
    $playerRow = $rosterRow->find("td");
    $name = $playerRow[0];
    $jersey = $playerRow[1];
    // more can be added, of course.

    $players[$name] = array();
    $players[$name]["jersey"] = $jersey;
    // and others
}
餐桌

John Appleseed | 12
---------------|----
Richard Brooks | 34
这将产生一个类似

{ "John Appleseed" => { "jersey" => 12 }, "Richard Brooks" => { "jersey" => 34}}

请让我知道这是否有帮助。

如果您愿意接受一种更具可扩展性/健壮性的不同方法,那么您可能还想看看。您可以使用它根据ESPN的数据创建结构化API。我认为您可以定义表的哪个部分包含名称、分数等,并且可以很容易地调用API以获取所需的信息

谢谢你这帮了我大忙谢谢你我会再调查的。我不知道这是可行的。这是一个虚假的建议。有很多应用程序承诺在不编写代码的情况下就可以抓取网站,但它们都有缺陷,不属于这样的应用程序。