Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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获取第一、第二和第三个TD值_Php_Dom - Fatal编程技术网

如何使用php和dom获取第一、第二和第三个TD值

如何使用php和dom获取第一、第二和第三个TD值,php,dom,Php,Dom,我有一张这样的桌子: <tr> <td><font color="#000066">ADANA</font></td> <td><font color="#000066">SEYHAN</font></td> <td><font color="#000066">ZÜBEYDE HANIM ANAOKULU</font>&l

我有一张这样的桌子:

<tr>
    <td><font color="#000066">ADANA</font></td>
    <td><font color="#000066">SEYHAN</font></td>    
    <td><font color="#000066">ZÜBEYDE HANIM ANAOKULU</font></td>    
    <td><font color="#000066">KURTULUŞ MAH.64011 SOK. NO:1</font></td>    
    <td><font color="#000066">(322) 453 10 60</font></td>    
    <td><font color="#000066">(322) 459 19 77</font></td> 
</tr>

我想要这样:
$value['firsttd']、$value['secondtd']、$value['thirdtd']

使用simplexml更容易

$dom = simplexml_load_string($data);
$rows = $dom->xpath('/tr/td/font');
$value = array(
    'firsttd'  => (string)$rows[0],
    'secondtd' => (string)$rows[1],
    'thirdtd'  => (string)$rows[2],
);

您可以使用
for
将结果限制为
td
上的前3项:

$value = array();
$table = $xpath->query("//*[@id='dgKurumListesi']")->item(0);
$rows = $table->getElementsByTagName("tr");
foreach ($rows as $row)
{
    $cells = $row->getElementsByTagName('td');
    // Keep in mind that the elements index start at 0
    // so we want 0, 1, 2 to get the first 3.
    for ($i = 0; $i < 3; $i++)
    {
        if (is_object($cells->item($i)))
            $value[] = $cells->item($i)->nodeValue;
    }
}
print_r($value);
根据您的评论,您可以使用如下多维数组:

for ($r = 0; $r < $rows->length; $r++)
{
    if (!is_object($rows->item($r)))
        continue;

    $cells = $rows->item($r)->getElementsByTagName('td');
    for ($i = 0; $i < 3; $i++)
    {
        if (is_object($cells->item($i)))
            $value[$r][$i] = $cells->item($i)->nodeValue;
    }
}

foreach ($value as $item)
{
    echo $item[0], ',', $item[1], ',', $item[2], "\n";
}
for($r=0;$r<$rows->length;$r++)
{
如果(!是对象($rows->item($r)))
继续;
$cells=$rows->item($r)->getElementsByTagName('td');
对于($i=0;$i<3;$i++)
{
如果(是对象($cells->item($i)))
$value[$r][$i]=$cells->item($i)->nodeValue;
}
}
foreach(价值为$item)
{
回显$item[0]、'、'、'、$item[1]、'、'、'、$item[2]、“\n”;
}

结果是什么?结果是=ADANASEYHANZÜBEYDE HANIM ANAOKULUKURTULUŞMAH.64011 SOK。否:1(322)453 10 60(322)459 19 77“谢谢你的好意。我可以这样使用:$item[0]、item[1]、item[2]?@user1363426你可以作为
$value[0]
使用,也可以改为$item,这样你就可以使用
$item[0]
。请将此答案标记为正确答案,如果它解决了您的问题,我有50000个这样的tr,我希望获取所有值并将我的数据保存在不同的字段中。caps:。很抱歉我的英语不好。@user1363426您可以使用多维数组,请参阅底部关于我答案的更新。
foreach ($value as $item)
{
    echo $item, "<br />\n";
}
for ($r = 0; $r < $rows->length; $r++)
{
    if (!is_object($rows->item($r)))
        continue;

    $cells = $rows->item($r)->getElementsByTagName('td');
    for ($i = 0; $i < 3; $i++)
    {
        if (is_object($cells->item($i)))
            $value[$r][$i] = $cells->item($i)->nodeValue;
    }
}

foreach ($value as $item)
{
    echo $item[0], ',', $item[1], ',', $item[2], "\n";
}